1. Data Describtion¶

Columns¶

  • image_name - unique identifier, points to filename of related DICOM image
  • patient_id - unique patient identifier
  • sex - the sex of the patient (when unknown, will be blank)
  • age_approx - approximate patient age at time of imaging
  • anatom_site_general_challenge - location of imaged site
  • diagnosis - detailed diagnosis information (train only)
  • benign_malignant - indicator of malignancy of imaged lesion
  • target - binarized version of the target variable

Images¶

  • DICOM ---> .dcm
  • JPEG ---> .jpg

2. Notebook Preparation for Code¶

Libraries¶

In [1]:
# !pip install --upgrade tensorflow
# !pip install tensorflow-addons
In [2]:
!pip install -q efficientnet
In [3]:
import os, os.path
import re
import numpy as np
import pandas as pd
import random
import math
import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib.image as mpimg
import seaborn as sns

from sklearn import metrics
from sklearn.model_selection import KFold, StratifiedKFold, GroupKFold
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.metrics import accuracy_score, roc_auc_score, confusion_matrix
from sklearn import preprocessing

import tensorflow as tf
from kaggle_datasets import KaggleDatasets
import efficientnet.tfkeras as efn
import dill
from tensorflow.keras import backend as K

from PIL import Image
import gc
import cv2
import time
import datetime

import pydicom # for DICOM images
from skimage.transform import resize

import torch
from torch.utils.data import Dataset, DataLoader, Subset
import torchvision.transforms as transforms
import torchvision
import torch.nn as nn
import torch.nn.functional as F
from torch import FloatTensor, LongTensor

from albumentations import (ToFloat, Normalize, VerticalFlip, HorizontalFlip, Compose, Resize,
                            RandomBrightnessContrast, HueSaturationValue, Blur, GaussNoise,
                            Rotate, RandomResizedCrop, ShiftScaleRotate)

# from albumentations.pytorch import ToTensorV2, ToTensor

import keras
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
import numpy as np
import cv2
import math
from sklearn.metrics import confusion_matrix , classification_report
from sklearn.model_selection import train_test_split
from keras.callbacks import EarlyStopping
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, BatchNormalization, MaxPool2D
from keras.models import Sequential
from tensorflow.keras.preprocessing.image import ImageDataGenerator,load_img, img_to_array, array_to_img
from sklearn.metrics import ConfusionMatrixDisplay
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.applications import ResNet50V2, ResNet152V2, EfficientNetB7

import warnings
warnings.filterwarnings("ignore")

# Set Color Palettes for the notebook
colors_nude = ['#1A1A1D', '#4E4E50', '#C5C6C7', '#6F2232', '#950740', '#C3073F']
sns.palplot(sns.color_palette(colors_nude))

# Set Style
sns.set_style("whitegrid")
sns.despine(left=True, bottom=True)
/opt/conda/lib/python3.10/site-packages/albumentations/__init__.py:13: UserWarning: A new version of Albumentations is available: 2.0.1 (you have 1.4.17). Upgrade using: pip install -U albumentations. To disable automatic update checks, set the environment variable NO_ALBUMENTATIONS_UPDATE to 1.
  check_for_updates()
No description has been provided for this image

Device Selection¶

In [4]:
def set_seed(seed = 1234):
    '''Sets the seed of the entire notebook so results are the same every time we run.
    This is for REPRODUCIBILITY.'''
    np.random.seed(seed)
    random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    # When running on the CuDNN backend, two further options must be set
    torch.backends.cudnn.deterministic = True
    # Set a fixed value for the hash seed
    os.environ['PYTHONHASHSEED'] = str(seed)
    
set_seed()
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print('Device available now:', device)
Device available now: cuda

Importing Tabular Data¶

In [5]:
directory = '../input/siim-isic-melanoma-classification'

train_df = pd.read_csv(directory + '/train.csv')
test_df = pd.read_csv(directory + '/test.csv')

print('Train has {} rows and Test has {} rows.'.format(len(train_df), len(test_df)))
Train has 33126 rows and Test has 10982 rows.
In [6]:
roman_train = pd.read_csv('../input/../input/melanoma-external-malignant-256/train_concat.csv')

Importing Images¶

In [7]:
# === DICOM ===
# Create the paths
path_train = directory + '/train/' + train_df['image_name'] + '.dcm'
path_test = directory + '/test/' + test_df['image_name'] + '.dcm'

# Append to the original dataframes
train_df['path_dicom'] = path_train
test_df['path_dicom'] = path_test

# === JPEG ===
# Create the paths
path_train = directory + '/jpeg/train/' + train_df['image_name'] + '.jpg'
path_test = directory + '/jpeg/test/' + test_df['image_name'] + '.jpg'

# Append to the original dataframes
train_df['path_jpeg'] = path_train
test_df['path_jpeg'] = path_test

3. Data Inspection & Preparation for EDA¶

In [8]:
train_df.sample(n=10)
Out[8]:
image_name patient_id sex age_approx anatom_site_general_challenge diagnosis benign_malignant target path_dicom path_jpeg
3283 ISIC_1091280 IP_3531667 male 50.0 torso unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
8880 ISIC_2760961 IP_0677357 male 35.0 torso nevus benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
32936 ISIC_9942347 IP_7522397 female 50.0 torso unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
25307 ISIC_7681490 IP_7770500 male 60.0 torso unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
13310 ISIC_4086323 IP_9748593 female 60.0 torso unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
29415 ISIC_8892018 IP_2107993 female 70.0 lower extremity unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
17501 ISIC_5341606 IP_8226501 female 25.0 torso unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
11104 ISIC_3424207 IP_5229014 male 55.0 torso unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
718 ISIC_0317682 IP_0148558 female 45.0 torso unknown benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
8933 ISIC_2778113 IP_8171635 male 70.0 upper extremity seborrheic keratosis benign 0 ../input/siim-isic-melanoma-classification/tra... ../input/siim-isic-melanoma-classification/jpe...
In [9]:
test_df.sample(n=10)
Out[9]:
image_name patient_id sex age_approx anatom_site_general_challenge path_dicom path_jpeg
2866 ISIC_2672734 IP_0791728 male 45.0 torso ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
2506 ISIC_2354916 IP_6877747 female 65.0 upper extremity ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
4816 ISIC_4427247 IP_7151390 male 50.0 torso ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
5793 ISIC_5296029 IP_4288676 female 55.0 torso ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
944 ISIC_0936437 IP_1977998 female 50.0 head/neck ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
1715 ISIC_1632938 IP_0854419 male 40.0 lower extremity ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
2050 ISIC_1948461 IP_4058630 male 35.0 torso ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
3029 ISIC_2824061 IP_7151390 male 50.0 lower extremity ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
7090 ISIC_6437720 IP_8257005 female 60.0 upper extremity ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
8657 ISIC_7857675 IP_6784132 male 65.0 torso ../input/siim-isic-melanoma-classification/tes... ../input/siim-isic-melanoma-classification/jpe...
In [10]:
train_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 33126 entries, 0 to 33125
Data columns (total 10 columns):
 #   Column                         Non-Null Count  Dtype  
---  ------                         --------------  -----  
 0   image_name                     33126 non-null  object 
 1   patient_id                     33126 non-null  object 
 2   sex                            33061 non-null  object 
 3   age_approx                     33058 non-null  float64
 4   anatom_site_general_challenge  32599 non-null  object 
 5   diagnosis                      33126 non-null  object 
 6   benign_malignant               33126 non-null  object 
 7   target                         33126 non-null  int64  
 8   path_dicom                     33126 non-null  object 
 9   path_jpeg                      33126 non-null  object 
dtypes: float64(1), int64(1), object(8)
memory usage: 2.5+ MB
In [11]:
train_df.rename(columns={'patient_id':'Id', 'age_approx':'Age', 'anatom_site_general_challenge':'Anatomy', 'benign_malignant':'is_malignant'}, inplace=True)
In [12]:
test_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10982 entries, 0 to 10981
Data columns (total 7 columns):
 #   Column                         Non-Null Count  Dtype  
---  ------                         --------------  -----  
 0   image_name                     10982 non-null  object 
 1   patient_id                     10982 non-null  object 
 2   sex                            10982 non-null  object 
 3   age_approx                     10982 non-null  float64
 4   anatom_site_general_challenge  10631 non-null  object 
 5   path_dicom                     10982 non-null  object 
 6   path_jpeg                      10982 non-null  object 
dtypes: float64(1), object(6)
memory usage: 600.7+ KB
In [13]:
test_df.rename(columns={'patient_id':'Id', 'age_approx':'Age', 'anatom_site_general_challenge':'Anatomy'}, inplace=True)
In [14]:
print('Train .dcm number of images:', len(train_df['path_dicom'].notna()), '\n' +
      'Test .dcm number of images:', len(test_df['path_dicom'].notna()), '\n' +
      'Train .jpeg number of images:', len(train_df['path_jpeg'].notna()), '\n' +
      'Test .jpeg number of images:', len(test_df['path_dicom'].notna()))
Train .dcm number of images: 33126 
Test .dcm number of images: 10982 
Train .jpeg number of images: 33126 
Test .jpeg number of images: 10982
In [15]:
roman_train.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 37648 entries, 0 to 37647
Data columns (total 6 columns):
 #   Column                         Non-Null Count  Dtype  
---  ------                         --------------  -----  
 0   image_name                     37648 non-null  object 
 1   patient_id                     37311 non-null  object 
 2   sex                            37502 non-null  object 
 3   age_approx                     37495 non-null  float64
 4   anatom_site_general_challenge  36994 non-null  object 
 5   target                         37648 non-null  int64  
dtypes: float64(1), int64(1), object(4)
memory usage: 1.7+ MB
In [16]:
roman_train.rename(columns={'patient_id':'Id', 'age_approx':'Age', 'anatom_site_general_challenge':'Anatomy'}, inplace=True)

Handling Missing Values in Training Data¶

In [17]:
nan_sex = train_df[train_df['sex'].isna()]
is_sex = train_df[train_df['sex'].notna()]

# Figure
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

a = sns.histplot(nan_sex['Anatomy'], ax = ax1, color='#6F2232')
b = sns.histplot(is_sex['Anatomy'], ax = ax2, color='#6F2232')
ax1.set_title('NAN Gender : Anatomy', fontsize=16)
ax2.set_title('Rest Gender : Anatomy', fontsize=16)

a.set_xticklabels(a.get_xticklabels(), rotation=35, ha="right")
b.set_xticklabels(b.get_xticklabels(), rotation=35, ha="right")
sns.despine(left=True, bottom=True);

benign_count = nan_sex['is_malignant'].value_counts()[0]
print(f'Out of {len(nan_sex)} NAN values, {benign_count} are benign and {len(nan_sex) - benign_count} malignant.\n')
Out of 65 NAN values, 65 are benign and 0 malignant.

No description has been provided for this image
In [18]:
anatomy = ['lower extremity', 'upper extremity', 'torso']        # Most common anatomy accompanying NANs
train_df[(train_df['Anatomy'].isin(anatomy)) & (train_df['target'] == 0)]['sex'].value_counts()

train_df[train_df['target'] == 0]['sex'].value_counts()
Out[18]:
sex
male      16716
female    15761
Name: count, dtype: int64
In [19]:
train_df['sex'].fillna("male", inplace = True)
In [20]:
nan_age = train_df[train_df['Age'].isna()]
is_age = train_df[train_df['Age'].notna()]

# Figure
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

a = sns.histplot(nan_sex['Anatomy'], ax = ax1, color='#6F2232')
b = sns.histplot(is_sex['Anatomy'], ax = ax2, color='#6F2232')
ax1.set_title('NAN Age : Anatomy', fontsize=16)
ax2.set_title('Rest Age : Anatomy', fontsize=16)

a.set_xticklabels(a.get_xticklabels(), rotation=35, ha="right")
b.set_xticklabels(b.get_xticklabels(), rotation=35, ha="right")
sns.despine(left=True, bottom=True);

benign_count = nan_age['is_malignant'].value_counts()[0]
print(f'Out of {len(nan_age)} NAN values, {benign_count} are benign and {len(nan_age) - benign_count} malignant.\n')
Out of 68 NAN values, 68 are benign and 0 malignant.

No description has been provided for this image
In [21]:
anatomy = ['lower extremity', 'upper extremity', 'torso']
median = train_df[(train_df['Anatomy'].isin(anatomy)) & (train_df['target'] == 0) & (train_df['sex'] == 'male')]['Age'].median()
print('Median is:', median)
Median is: 50.0
In [22]:
train_df['Age'].fillna(median, inplace = True)
In [23]:
anatomy = train_df.copy()
anatomy['is_missing'] = np.where(train_df['Anatomy'].isna()==True, 'missing', 'not_missing')
nan_anatomy = anatomy[anatomy['is_missing'] == 'missing']
is_anatomy = anatomy[anatomy['is_missing'] != 'missing']

# Figure
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

sns.countplot(x='is_missing', hue='sex', data=anatomy, palette=colors_nude, ax=ax1)

# Missing Anatomy Age Distribution in grey
sns.kdeplot(nan_anatomy['Age'],
            label='Missing', ax=ax2,
            color=colors_nude[2], linewidth=4, bw=0.1, fill=False)

# Not Missing Anatomy Age Distribution in dark red
sns.kdeplot(is_anatomy['Age'],
            label='Not Missing', ax=ax2,
            color=colors_nude[3], linewidth=4, bw=0.1, fill=False)

ax1.set_title('Gender for Anatomy', fontsize=16)
ax2.set_title('Age Distribution for Anatomy', fontsize=16)
sns.despine(left=True, bottom=True);

benign_count = nan_anatomy['is_malignant'].value_counts()[0]
print(f'Out of {len(nan_anatomy)} NAN values, {benign_count} are benign and {len(nan_anatomy) - benign_count} malignant.\n')
Out of 527 NAN values, 518 are benign and 9 malignant.

No description has been provided for this image
In [24]:
train_df['Anatomy'].fillna('torso', inplace = True)

Handling Missing Data in Test Data¶

In [25]:
anatomy = test_df.copy()
anatomy['is_missing'] = np.where(test_df['Anatomy'].isna()==True, 'missing', 'not_missing')
nan_anatomy = anatomy[anatomy['is_missing'] == 'missing']
is_anatomy = anatomy[anatomy['is_missing'] != 'missing']

# Figure
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

sns.countplot(x='is_missing', hue='sex', data=anatomy, palette=colors_nude, ax=ax1)

sns.kdeplot(nan_anatomy['Age'], label='Missing', ax=ax2, legend=True,
            color=colors_nude[2], linewidth=4, bw=0.1, fill=False)     # Missing Anatomy in grey

sns.kdeplot(is_anatomy['Age'], label='Not Missing', ax=ax2, legend=True,
            color=colors_nude[3], linewidth=4, bw=0.1, fill=False)     # Not Missing in dark red

ax1.set_title('Gender for Anatomy', fontsize=16)
ax2.set_title('Age Distribution for Anatomy', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image
In [26]:
test_df['Anatomy'].fillna('torso', inplace = True) 

4. EDA¶

Train EDA¶

In [27]:
# Figure
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

a = sns.histplot(train_df['is_malignant'], color=colors_nude[3], ax=ax1)

# Benign age distribution in grey
b = sns.distplot(a = train_df[train_df['target']==0]['Age'], ax=ax2, color=colors_nude[2], 
                 hist=False, rug=True, kde_kws=dict(linewidth=4), label='Benign')
# Malignant age distribution in dark red
c = sns.distplot(a = train_df[train_df['target']==1]['Age'], ax=ax2, color=colors_nude[3], 
                 hist=False, rug=True, kde_kws=dict(linewidth=4), label='Malignant')

for p in a.patches:
    a.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
ax1.set_title('Frequency for Target Variable', fontsize=16)
ax2.set_title('Age Distribution the Target types', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image
In [28]:
plt.figure(figsize=(16, 6))
a = sns.countplot(x='is_malignant', hue='sex', data=train_df, palette=colors_nude[2:4])

for p in a.patches:
    a.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')

plt.title('Gender split by Target Variable', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image
In [29]:
# Figure
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

a = sns.countplot(x='Anatomy', data=train_df, ax=ax1, palette = colors_nude)
b = sns.countplot(x='diagnosis', data=train_df, ax=ax2, palette = colors_nude)

a.set_xticklabels(a.get_xticklabels(), rotation=35, ha="right")
b.set_xticklabels(b.get_xticklabels(), rotation=35, ha="right")

for p in a.patches:
    a.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
for p in b.patches:
    b.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
ax1.set_title('Anatomy Frequencies', fontsize=16)
ax2.set_title('Diagnosis Frequencies', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image
In [30]:
plt.figure(figsize=(16, 6))
a = sns.countplot(x='is_malignant', data=train_df, hue='Anatomy', palette=colors_nude)

for p in a.patches:
    a.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')

plt.title('Anatomy split by Target Variable', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image
In [31]:
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

a = sns.countplot(x='diagnosis',data=train_df[train_df['target']==0], ax=ax1, palette = colors_nude)
b = sns.countplot(x='diagnosis', ax=ax2, data=train_df[train_df['target']==1], palette = colors_nude[-1:])

a.set_xticklabels(a.get_xticklabels(), rotation=35, ha="right")
b.set_xticklabels(b.get_xticklabels(), rotation=35, ha="right")

for p in a.patches:
    a.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
for p in b.patches:
    b.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
ax1.set_title('Benign cases: Diagnosis view', fontsize=16)
ax2.set_title('Malignant cases: Diagnosis view', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image

Test EDA¶

In [32]:
# Figure
f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize = (16, 6))

a = sns.countplot(data=test_df, x='sex', palette=colors_nude[2:4], ax=ax1)
b = sns.countplot(data=test_df, x='Anatomy', ax=ax2, palette = colors_nude)
c = sns.distplot(a = test_df['Age'], ax=ax3, color=colors_nude[4], 
                 hist=False, rug=True, kde_kws=dict(linewidth=4))

for p in a.patches:
    a.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
for p in b.patches:
    b.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
b.set_xticklabels(b.get_xticklabels(), rotation=35, ha="right")

ax1.set_title('Test: Gender Frequencies', fontsize=16)
ax2.set_title('Test: Anatomy Frequencies', fontsize=16)
ax3.set_title('Test: Age Distribution', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image

Train and Test Distribution Comparison¶

In [33]:
# Count the number of images per ID
patients_count_train = train_df.groupby(by='Id')['image_name'].count().reset_index()
patients_count_test = test_df.groupby(by='Id')['image_name'].count().reset_index()

# Figure
f, (ax1, ax2) = plt.subplots(1, 2, figsize = (16, 6))

a = sns.distplot(patients_count_train['image_name'], kde=False, bins=50, 
                 ax=ax1, color=colors_nude[0], hist_kws={'alpha': 1})
b = sns.distplot(patients_count_test['image_name'], kde=False, bins=50, 
                 ax=ax2, color=colors_nude[3], hist_kws={'alpha': 1})
    
ax1.set_title('Train: Images per Patient Distribution', fontsize=16)
ax2.set_title('Test: Images per Patient Distribution', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image

5. Data Preprocessing¶

Tabular Data¶

Train Data Label Encoding¶

In [34]:
to_encode = ['sex', 'Anatomy', 'diagnosis']
encoded_all = []

label_encoder = LabelEncoder()

for column in to_encode:
    train_df[column] = label_encoder.fit_transform(train_df[column])

if 'is_malignant' in train_df.columns : train_df.drop(['is_malignant'], axis=1, inplace=True)

Test Data Label Encoding¶

In [35]:
to_encode = ['sex', 'Anatomy']
encoded_all = []

label_encoder = LabelEncoder()

for column in to_encode:
    test_df[column] = label_encoder.fit_transform(test_df[column])

One Hot Encoding Roman Training Data¶

In [36]:
roman_train
Out[36]:
image_name Id sex Age Anatomy target
0 ISIC_2637011 IP_7279968 male 45.0 head/neck 0
1 ISIC_0015719 IP_3075186 female 45.0 upper extremity 0
2 ISIC_0052212 IP_2842074 female 50.0 lower extremity 0
3 ISIC_0068279 IP_6890425 female 45.0 head/neck 0
4 ISIC_0074268 IP_8723313 female 55.0 upper extremity 0
... ... ... ... ... ... ...
37643 ISIC_0073231 BCN_0005418 female 55.0 anterior torso 1
37644 ISIC_0073237 BCN_0001536 female 45.0 lower extremity 1
37645 ISIC_0073238 BCN_0005240 female 45.0 upper extremity 1
37646 ISIC_0073241 BCN_0004405 male 60.0 palms/soles 1
37647 ISIC_0073249 BCN_0001085 male 70.0 lower extremity 1

37648 rows × 6 columns

In [37]:
to_encode = ['sex', 'Anatomy']

label_encoder = LabelEncoder()

for column in to_encode:
    roman_train[column] = label_encoder.fit_transform(roman_train[column].astype(str))

Images¶

DICOM Images¶

Get Idea About Sizes¶

In [38]:
shapes_train = []

for k, path in enumerate(train_df['path_jpeg']):
    image = Image.open(path)
    shapes_train.append(image.size)
    
    if k >= 100: break
        
shapes_train = pd.DataFrame(data = shapes_train, columns = ['H', 'W'], dtype='object')
shapes_train['Size'] = '[' + shapes_train['H'].astype(str) + ', ' + shapes_train['W'].astype(str) + ']'
In [39]:
plt.figure(figsize = (16, 6))

a = sns.countplot(data=shapes_train, x='Size', palette=colors_nude)

for p in a.patches:
    a.annotate(format(p.get_height(), ','), 
           (p.get_x() + p.get_width() / 2., 
            p.get_height()), ha = 'center', va = 'center', 
           xytext = (0, 4), textcoords = 'offset points')
    
plt.title('100 Images Shapes', fontsize=16)
sns.despine(left=True, bottom=True);
No description has been provided for this image

Inspect Images¶

In [40]:
def show_images(data, n = 5, rows=1, cols=5, title='Default'):
    plt.figure(figsize=(16,4))

    for k, path in enumerate(data['path_dicom'][:n]):
        image = pydicom.dcmread(path)
        image = image.pixel_array
        
        # image = resize(image, (200, 200), anti_aliasing=True)

        plt.suptitle(title, fontsize = 16)
        plt.subplot(rows, cols, k+1)
        plt.imshow(image)
        plt.axis('off')
In [41]:
show_images(train_df[train_df['target'] == 0], n=10, rows=2, cols=5, title='Benign Sample')
No description has been provided for this image
In [42]:
show_images(train_df[train_df['target'] == 1], n=10, rows=2, cols=5, title='Malignant Sample')
No description has been provided for this image

Greyscale Filter¶

In [43]:
fig, axes = plt.subplots(nrows=2, ncols=6, figsize=(16,6))
plt.suptitle("Greyscale Filter", fontsize = 16)

for i in range(0, 2*6):
    data = pydicom.dcmread(train_df['path_dicom'][i])
    image = data.pixel_array
    
    # Transform to B&W
    # The function converts an input image from one color space to another.
    image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
    image = cv2.resize(image, (200,200))
    
    x = i // 6
    y = i % 6
    axes[x, y].imshow(image, cmap=plt.cm.bone) 
    axes[x, y].axis('off')
No description has been provided for this image

Ben Graham Technique (Greyscale + Gaussian Blur)¶

In [44]:
fig, axes = plt.subplots(nrows=2, ncols=6, figsize=(16,6))
plt.suptitle("Ben Graham Technique", fontsize = 16)

for i in range(0, 2*6):
    data = pydicom.dcmread(train_df['path_dicom'][i])
    image = data.pixel_array
    
    # Transform to B&W
    # The function converts an input image from one color space to another.
    image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
    image = cv2.resize(image, (200,200))
    image=cv2.addWeighted(image, 4, cv2.GaussianBlur(image, (0,0) ,256/10), -4, 128)
    
    x = i // 6
    y = i % 6
    axes[x, y].imshow(image, cmap=plt.cm.bone) 
    axes[x, y].axis('off')
No description has been provided for this image

HSV (Hue, Saturation, Value) Color Space¶

In [45]:
fig, axes = plt.subplots(nrows=2, ncols=6, figsize=(16,6))
plt.suptitle("HSV Color Space", fontsize = 16)

for i in range(0, 2*6):
    data = pydicom.dcmread(train_df['path_dicom'][i])
    image = data.pixel_array
    
    # Transform to B&W
    # The function converts an input image from one color space to another.
    image = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
    image = cv2.resize(image, (200,200))
    
    x = i // 6
    y = i % 6
    axes[x, y].imshow(image, cmap=plt.cm.bone) 
    axes[x, y].axis('off')
No description has been provided for this image

HLS (Hue, Lightness, Saturation) Color Space¶

In [46]:
fig, axes = plt.subplots(nrows=2, ncols=6, figsize=(16,6))
plt.suptitle("Hue, Lightness, Saturation", fontsize = 16)

for i in range(0, 2*6):
    data = pydicom.dcmread(train_df['path_dicom'][i])
    image = data.pixel_array
    
    # Transform to B&W
    # The function converts an input image from one color space to another.
    image = cv2.cvtColor(image, cv2.COLOR_RGB2HLS)
    image = cv2.resize(image, (200,200))
    
    x = i // 6
    y = i % 6
    axes[x, y].imshow(image, cmap=plt.cm.bone) 
    axes[x, y].axis('off')
No description has been provided for this image

LUV (Lightness, UV) Color Space¶

In [47]:
fig, axes = plt.subplots(nrows=2, ncols=6, figsize=(16,6))
plt.suptitle("LUV Color Space", fontsize = 16)

for i in range(0, 2*6):
    data = pydicom.dcmread(train_df['path_dicom'][i])
    image = data.pixel_array
    
    # Transform to B&W
    # The function converts an input image from one color space to another.
    image = cv2.cvtColor(image, cv2.COLOR_RGB2LUV)
    image = cv2.resize(image, (200,200))
    
    x = i // 6
    y = i % 6
    axes[x, y].imshow(image, cmap=plt.cm.bone) 
    axes[x, y].axis('off')
No description has been provided for this image

JPEG Images¶

Torchvision Transform¶

In [48]:
# Select a small sample of the .jpeg image paths
image_list = train_df.sample(12)['path_jpeg']
image_list = image_list.reset_index()['path_jpeg']

# Show the sample
plt.figure(figsize=(16,6))
plt.suptitle("Original View", fontsize = 16)
    
for k, path in enumerate(image_list):
    image = mpimg.imread(path)
        
    plt.subplot(2, 6, k+1)
    plt.imshow(image)
    plt.axis('off')
No description has been provided for this image
In [49]:
# Create PyTorch Dataset Object
class DatasetExample(Dataset):
    def __init__(self, image_list, transforms=None):
        self.image_list = image_list
        self.transforms = transforms
    
    # To get item's length
    def __len__(self):
        return (len(self.image_list))
    
    # For indexing
    def __getitem__(self, i):
        # Read in image
        image = plt.imread(self.image_list[i])
        image = Image.fromarray(image).convert('RGB')        
        image = np.asarray(image).astype(np.uint8)
        if self.transforms is not None:
            image = self.transforms(image)
            
        return torch.tensor(image, dtype=torch.float)
In [50]:
# Predefined Show Images Function
def show_transform(image, title="Default"):
    plt.figure(figsize=(16,6))
    plt.suptitle(title, fontsize = 16)
    
    # Unnormalize
    image = image / 2 + 0.5  
    npimg = image.numpy()
    npimg = np.clip(npimg, 0., 1.)
    plt.imshow(np.transpose(npimg, (1, 2, 0)))
    plt.show()

Crop Images¶

In [51]:
# Transform
transform = transforms.Compose([
     transforms.ToPILImage(),
     transforms.Resize((300, 300)),
     transforms.CenterCrop((100, 100)),
     transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
     ])

# Create the dataset
pytorch_dataset = DatasetExample(image_list=image_list, transforms=transform)
pytorch_dataloader = DataLoader(dataset=pytorch_dataset, batch_size=12, shuffle=True)

# Select the data
images = next(iter(pytorch_dataloader))
 
# show images
show_transform(torchvision.utils.make_grid(images, nrow=6), title="Crop")
No description has been provided for this image

ColorJitter (Randomly change the brightness, contrast and saturation of an image)¶

In [52]:
# Transform
transform = transforms.Compose([
     transforms.ToPILImage(),
     transforms.Resize((300, 300)),
     transforms.ColorJitter(brightness=0.7, contrast=0.7, saturation=0.7, hue=0.5),
     transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
     ])

# Create the dataset
pytorch_dataset = DatasetExample(image_list=image_list, transforms=transform)
pytorch_dataloader = DataLoader(dataset=pytorch_dataset, batch_size=12, shuffle=True)

# Select the data
images = next(iter(pytorch_dataloader))
 
# show images
show_transform(torchvision.utils.make_grid(images, nrow=6), title="Color Jitter")
No description has been provided for this image

Random Greyscale Filter¶

In [53]:
# Transform
transform = transforms.Compose([
     transforms.ToPILImage(),
     transforms.Resize((300, 300)),
     transforms.RandomGrayscale(p=0.7),
     transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
     ])

# Create the dataset
pytorch_dataset = DatasetExample(image_list=image_list, transforms=transform)
pytorch_dataloader = DataLoader(dataset=pytorch_dataset, batch_size=12, shuffle=True)

# Select the data
images = next(iter(pytorch_dataloader))
 
# show images
show_transform(torchvision.utils.make_grid(images, nrow=6), title="Random Greyscale")
No description has been provided for this image

Random Vertical Flip¶

In [54]:
# Transform
transform = transforms.Compose([
     transforms.ToPILImage(),
     transforms.Resize((300, 300)),
     transforms.RandomVerticalFlip(p=0.7),
     transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
     ])

# Create the dataset
pytorch_dataset = DatasetExample(image_list=image_list, transforms=transform)
pytorch_dataloader = DataLoader(dataset=pytorch_dataset, batch_size=12, shuffle=True)

# Select the data
images = next(iter(pytorch_dataloader))
 
# show images
show_transform(torchvision.utils.make_grid(images, nrow=6), title="Random Vertical Flip")
No description has been provided for this image

Hair Removal (Grayscale + MORPH_BLACKHAT + INPAINT_TRLEA)¶

In [55]:
def hair_remove(image):
    # convert image to grayScale
    grayScale = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

    # kernel for morphologyEx
    kernel = cv2.getStructuringElement(1,(17,17))

    # apply MORPH_BLACKHAT to grayScale image
    blackhat = cv2.morphologyEx(grayScale, cv2.MORPH_BLACKHAT, kernel)

    # apply thresholding to blackhat
    _,threshold = cv2.threshold(blackhat,10,255,cv2.THRESH_BINARY)

    # inpaint with original image and threshold image
    final_image = cv2.inpaint(image,threshold,1,cv2.INPAINT_TELEA)

    return final_image
In [56]:
# Select a small sample of the .jpeg image paths
# We select some hairy photos on purpose
hairy_photos = train_df[train_df["sex"] == 1].reset_index().iloc[[12, 14, 17, 22, 33, 34]]
image_list = hairy_photos['path_jpeg']
image_list = image_list.reset_index()['path_jpeg']

# Show the Augmented Images
plt.figure(figsize=(16,3))
plt.suptitle("Original Hairy Images", fontsize = 16)
    
for k, path in enumerate(image_list):
    image = mpimg.imread(path)
    image = cv2.resize(image,(300, 300))
        
    plt.subplot(1, 6, k+1)
    plt.imshow(image)
    plt.axis('off')
No description has been provided for this image
In [57]:
# Show the sample
plt.figure(figsize=(16,3))
plt.suptitle("Non Hairy Images", fontsize = 16)
    
for k, path in enumerate(image_list):
    image = mpimg.imread(path)
    image = cv2.resize(image,(300, 300))
    image = hair_remove(image)
        
    plt.subplot(1, 6, k+1)
    plt.imshow(image)
    plt.axis('off')
No description has been provided for this image

6. Adding Malignant Data for Better Imabalance Ratio¶

In [58]:
my_train = train_df.drop(['path_dicom','path_jpeg'], axis=1)
my_train.drop(['diagnosis'], axis=1, inplace=True)
my_train
Out[58]:
image_name Id sex Age Anatomy target
0 ISIC_2637011 IP_7279968 1 45.0 0 0
1 ISIC_0015719 IP_3075186 0 45.0 5 0
2 ISIC_0052212 IP_2842074 0 50.0 1 0
3 ISIC_0068279 IP_6890425 0 45.0 0 0
4 ISIC_0074268 IP_8723313 0 55.0 5 0
... ... ... ... ... ... ...
33121 ISIC_9999134 IP_6526534 1 50.0 4 0
33122 ISIC_9999320 IP_3650745 1 65.0 4 0
33123 ISIC_9999515 IP_2026598 1 20.0 1 0
33124 ISIC_9999666 IP_7702038 1 50.0 1 0
33125 ISIC_9999806 IP_0046310 1 45.0 4 0

33126 rows × 6 columns

In [59]:
roman_train
Out[59]:
image_name Id sex Age Anatomy target
0 ISIC_2637011 IP_7279968 1 45.0 1 0
1 ISIC_0015719 IP_3075186 0 45.0 9 0
2 ISIC_0052212 IP_2842074 0 50.0 3 0
3 ISIC_0068279 IP_6890425 0 45.0 1 0
4 ISIC_0074268 IP_8723313 0 55.0 9 0
... ... ... ... ... ... ...
37643 ISIC_0073231 BCN_0005418 0 55.0 0 1
37644 ISIC_0073237 BCN_0001536 0 45.0 3 1
37645 ISIC_0073238 BCN_0005240 0 45.0 9 1
37646 ISIC_0073241 BCN_0004405 1 60.0 6 1
37647 ISIC_0073249 BCN_0001085 1 70.0 3 1

37648 rows × 6 columns

Concatenate Malignant Data for Better Imbalance Ratio¶

In [60]:
# --- Concatenate info which is not available in my_train ---
common_images = my_train['image_name'].unique()
new_data = roman_train[~roman_train['image_name'].isin(common_images)]

# Merge all together
train_df = pd.concat([my_train, new_data], axis=0)
In [61]:
test_df = test_df.drop(['path_dicom','path_jpeg'], axis=1)
test_df
Out[61]:
image_name Id sex Age Anatomy
0 ISIC_0052060 IP_3579794 1 70.0 4
1 ISIC_0052349 IP_7782715 1 40.0 1
2 ISIC_0058510 IP_7960270 0 55.0 4
3 ISIC_0073313 IP_6375035 0 50.0 4
4 ISIC_0073502 IP_0589375 0 45.0 1
... ... ... ... ... ...
10977 ISIC_9992485 IP_4152479 1 40.0 4
10978 ISIC_9996992 IP_4890115 1 35.0 4
10979 ISIC_9997917 IP_2852390 1 25.0 5
10980 ISIC_9998234 IP_8861963 1 65.0 1
10981 ISIC_9999302 IP_6214039 1 30.0 5

10982 rows × 5 columns

Create the New Image Paths¶

In [62]:
# Create path column to image folder for both Train and Test
path_train = '../input/melanoma-external-malignant-256/train/train/'
path_test = '../input/melanoma-external-malignant-256/test/test/'

train_df['path_jpg'] = path_train + train_df['image_name'] + '.jpg'
test_df['path_jpg'] = path_test + test_df['image_name'] + '.jpg'

Fill Age Nulls¶

In [63]:
train_df['Age'] = train_df['Age'].fillna(-1)

Min-Max Scaler (Normalization)¶

In [64]:
normalized_train = preprocessing.normalize(train_df[['sex', 'Age', 'Anatomy']])
normalized_test = preprocessing.normalize(test_df[['sex', 'Age', 'Anatomy']])

train_df['sex'] = normalized_train[:, 0]
train_df['Age'] = normalized_train[:, 1]
train_df['Anatomy'] = normalized_train[:, 2]

test_df['sex'] = normalized_test[:, 0]
test_df['Age'] = normalized_test[:, 1]
test_df['Anatomy'] = normalized_test[:, 2]

del normalized_train, normalized_test

Read Images¶

In [65]:
def resize_image(image, x, y):
    # Convert image to OpenCV format (if necessary)
    if isinstance(image, np.ndarray):
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)  # Convert from RGB to BGR if needed

    # Resize the image
    resized_image = cv2.resize(image, (x,y))

    return resized_image
In [66]:
def ben_Graham(image):
    # Convert to grayscale
    gray_image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

    # Apply Gaussian blur
    blurred_image = cv2.GaussianBlur(gray_image, (5, 5), 0)  # Adjust kernel size and sigmaX as needed

    return blurred_image
In [67]:
def hair_remove(image):
    # convert image to grayScale
    grayScale = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

    # kernel for morphologyEx
    kernel = cv2.getStructuringElement(1,(17,17))

    # apply MORPH_BLACKHAT to grayScale image
    blackhat = cv2.morphologyEx(grayScale, cv2.MORPH_BLACKHAT, kernel)

    # apply thresholding to blackhat
    _,threshold = cv2.threshold(blackhat,10,255,cv2.THRESH_BINARY)

    # inpaint with original image and threshold image
    final_image = cv2.inpaint(image,threshold,1,cv2.INPAINT_TELEA)

    return final_image
In [68]:
def combined_preprocessing(image, x, y):
    
    image = hair_remove(image)
    image = ben_Graham(image)
    image = resize_image(image, x, y)

    return image
In [69]:
images=[]

for i in range (len(train_df)):
    image = Image.open(train_df['path_jpg'][i])
    image = np.array(image)
    image = combined_preprocessing(image, 128, 128)
    images.append(image)
In [70]:
images = np.array(images)
images = np.stack(images, axis=0)
target_reshaped = train_df['target'].to_numpy()
target_reshaped = np.stack(target_reshaped, axis=0)
In [71]:
images, x_val, target_reshaped, y_val = train_test_split(images, target_reshaped, test_size=0.2, random_state=42, stratify=target_reshaped)
In [72]:
data_aug = ImageDataGenerator(horizontal_flip=0.5,
                             vertical_flip=0.5,
                             brightness_range=[0.7, 1.3],
                             rescale=1./255,
                             fill_mode='nearest')

train_generator = data_aug.flow(images, target_reshaped, batch_size=32)

8. Modelling¶

ResNet50V2 Model¶

In [73]:
resnet50v2 = ResNet50V2(include_top=True,
                        weights=None,
                        input_tensor=None,
                        input_shape=(128, 128, 3),
                        pooling=None,
                        classes=2,
                        classifier_activation="sigmoid")

resnet50v2.name = "resnet50v2"
In [74]:
resnet50v2.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
resnet50v2.summary()
Model: "resnet50v2"
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Layer (type)        ┃ Output Shape      ┃    Param # ┃ Connected to      ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ input_layer         │ (None, 128, 128,  │          0 │ -                 │
│ (InputLayer)        │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_pad           │ (None, 134, 134,  │          0 │ input_layer[0][0] │
│ (ZeroPadding2D)     │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_conv (Conv2D) │ (None, 64, 64,    │      9,472 │ conv1_pad[0][0]   │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ pool1_pad           │ (None, 66, 66,    │          0 │ conv1_conv[0][0]  │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ pool1_pool          │ (None, 32, 32,    │          0 │ pool1_pad[0][0]   │
│ (MaxPooling2D)      │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_preac… │ (None, 32, 32,    │        256 │ pool1_pool[0][0]  │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_preac… │ (None, 32, 32,    │          0 │ conv2_block1_pre… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_conv │ (None, 32, 32,    │      4,096 │ conv2_block1_pre… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_bn   │ (None, 32, 32,    │        256 │ conv2_block1_1_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_relu │ (None, 32, 32,    │          0 │ conv2_block1_1_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_pad  │ (None, 34, 34,    │          0 │ conv2_block1_1_r… │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_conv │ (None, 32, 32,    │     36,864 │ conv2_block1_2_p… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_bn   │ (None, 32, 32,    │        256 │ conv2_block1_2_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_relu │ (None, 32, 32,    │          0 │ conv2_block1_2_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_0_conv │ (None, 32, 32,    │     16,640 │ conv2_block1_pre… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_3_conv │ (None, 32, 32,    │     16,640 │ conv2_block1_2_r… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_out    │ (None, 32, 32,    │          0 │ conv2_block1_0_c… │
│ (Add)               │ 256)              │            │ conv2_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_preac… │ (None, 32, 32,    │      1,024 │ conv2_block1_out… │
│ (BatchNormalizatio… │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_preac… │ (None, 32, 32,    │          0 │ conv2_block2_pre… │
│ (Activation)        │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_conv │ (None, 32, 32,    │     16,384 │ conv2_block2_pre… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_bn   │ (None, 32, 32,    │        256 │ conv2_block2_1_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_relu │ (None, 32, 32,    │          0 │ conv2_block2_1_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_pad  │ (None, 34, 34,    │          0 │ conv2_block2_1_r… │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_conv │ (None, 32, 32,    │     36,864 │ conv2_block2_2_p… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_bn   │ (None, 32, 32,    │        256 │ conv2_block2_2_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_relu │ (None, 32, 32,    │          0 │ conv2_block2_2_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_3_conv │ (None, 32, 32,    │     16,640 │ conv2_block2_2_r… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_out    │ (None, 32, 32,    │          0 │ conv2_block1_out… │
│ (Add)               │ 256)              │            │ conv2_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_preac… │ (None, 32, 32,    │      1,024 │ conv2_block2_out… │
│ (BatchNormalizatio… │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_preac… │ (None, 32, 32,    │          0 │ conv2_block3_pre… │
│ (Activation)        │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_conv │ (None, 32, 32,    │     16,384 │ conv2_block3_pre… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_bn   │ (None, 32, 32,    │        256 │ conv2_block3_1_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_relu │ (None, 32, 32,    │          0 │ conv2_block3_1_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_pad  │ (None, 34, 34,    │          0 │ conv2_block3_1_r… │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_conv │ (None, 16, 16,    │     36,864 │ conv2_block3_2_p… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_bn   │ (None, 16, 16,    │        256 │ conv2_block3_2_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_relu │ (None, 16, 16,    │          0 │ conv2_block3_2_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d       │ (None, 16, 16,    │          0 │ conv2_block2_out… │
│ (MaxPooling2D)      │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_3_conv │ (None, 16, 16,    │     16,640 │ conv2_block3_2_r… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_out    │ (None, 16, 16,    │          0 │ max_pooling2d[0]… │
│ (Add)               │ 256)              │            │ conv2_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_preac… │ (None, 16, 16,    │      1,024 │ conv2_block3_out… │
│ (BatchNormalizatio… │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_preac… │ (None, 16, 16,    │          0 │ conv3_block1_pre… │
│ (Activation)        │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_conv │ (None, 16, 16,    │     32,768 │ conv3_block1_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_bn   │ (None, 16, 16,    │        512 │ conv3_block1_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_relu │ (None, 16, 16,    │          0 │ conv3_block1_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_pad  │ (None, 18, 18,    │          0 │ conv3_block1_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block1_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_bn   │ (None, 16, 16,    │        512 │ conv3_block1_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_relu │ (None, 16, 16,    │          0 │ conv3_block1_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_0_conv │ (None, 16, 16,    │    131,584 │ conv3_block1_pre… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block1_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_out    │ (None, 16, 16,    │          0 │ conv3_block1_0_c… │
│ (Add)               │ 512)              │            │ conv3_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_preac… │ (None, 16, 16,    │      2,048 │ conv3_block1_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_preac… │ (None, 16, 16,    │          0 │ conv3_block2_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block2_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_bn   │ (None, 16, 16,    │        512 │ conv3_block2_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_relu │ (None, 16, 16,    │          0 │ conv3_block2_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_pad  │ (None, 18, 18,    │          0 │ conv3_block2_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block2_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_bn   │ (None, 16, 16,    │        512 │ conv3_block2_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_relu │ (None, 16, 16,    │          0 │ conv3_block2_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block2_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_out    │ (None, 16, 16,    │          0 │ conv3_block1_out… │
│ (Add)               │ 512)              │            │ conv3_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_preac… │ (None, 16, 16,    │      2,048 │ conv3_block2_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_preac… │ (None, 16, 16,    │          0 │ conv3_block3_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block3_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_bn   │ (None, 16, 16,    │        512 │ conv3_block3_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_relu │ (None, 16, 16,    │          0 │ conv3_block3_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_pad  │ (None, 18, 18,    │          0 │ conv3_block3_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block3_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_bn   │ (None, 16, 16,    │        512 │ conv3_block3_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_relu │ (None, 16, 16,    │          0 │ conv3_block3_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block3_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_out    │ (None, 16, 16,    │          0 │ conv3_block2_out… │
│ (Add)               │ 512)              │            │ conv3_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_preac… │ (None, 16, 16,    │      2,048 │ conv3_block3_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_preac… │ (None, 16, 16,    │          0 │ conv3_block4_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block4_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_bn   │ (None, 16, 16,    │        512 │ conv3_block4_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_relu │ (None, 16, 16,    │          0 │ conv3_block4_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_pad  │ (None, 18, 18,    │          0 │ conv3_block4_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_conv │ (None, 8, 8, 128) │    147,456 │ conv3_block4_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_bn   │ (None, 8, 8, 128) │        512 │ conv3_block4_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_relu │ (None, 8, 8, 128) │          0 │ conv3_block4_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_1     │ (None, 8, 8, 512) │          0 │ conv3_block3_out… │
│ (MaxPooling2D)      │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_3_conv │ (None, 8, 8, 512) │     66,048 │ conv3_block4_2_r… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_out    │ (None, 8, 8, 512) │          0 │ max_pooling2d_1[… │
│ (Add)               │                   │            │ conv3_block4_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_preac… │ (None, 8, 8, 512) │      2,048 │ conv3_block4_out… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_preac… │ (None, 8, 8, 512) │          0 │ conv4_block1_pre… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_conv │ (None, 8, 8, 256) │    131,072 │ conv4_block1_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block1_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block1_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_pad  │ (None, 10, 10,    │          0 │ conv4_block1_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block1_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block1_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block1_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_0_conv │ (None, 8, 8,      │    525,312 │ conv4_block1_pre… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block1_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_out    │ (None, 8, 8,      │          0 │ conv4_block1_0_c… │
│ (Add)               │ 1024)             │            │ conv4_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_preac… │ (None, 8, 8,      │      4,096 │ conv4_block1_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_preac… │ (None, 8, 8,      │          0 │ conv4_block2_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block2_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block2_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block2_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_pad  │ (None, 10, 10,    │          0 │ conv4_block2_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block2_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block2_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block2_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block2_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_out    │ (None, 8, 8,      │          0 │ conv4_block1_out… │
│ (Add)               │ 1024)             │            │ conv4_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_preac… │ (None, 8, 8,      │      4,096 │ conv4_block2_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_preac… │ (None, 8, 8,      │          0 │ conv4_block3_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block3_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block3_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block3_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_pad  │ (None, 10, 10,    │          0 │ conv4_block3_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block3_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block3_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block3_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block3_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_out    │ (None, 8, 8,      │          0 │ conv4_block2_out… │
│ (Add)               │ 1024)             │            │ conv4_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_preac… │ (None, 8, 8,      │      4,096 │ conv4_block3_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_preac… │ (None, 8, 8,      │          0 │ conv4_block4_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block4_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block4_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block4_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_pad  │ (None, 10, 10,    │          0 │ conv4_block4_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block4_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block4_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block4_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block4_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_out    │ (None, 8, 8,      │          0 │ conv4_block3_out… │
│ (Add)               │ 1024)             │            │ conv4_block4_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_preac… │ (None, 8, 8,      │      4,096 │ conv4_block4_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_preac… │ (None, 8, 8,      │          0 │ conv4_block5_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block5_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block5_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block5_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_pad  │ (None, 10, 10,    │          0 │ conv4_block5_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block5_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block5_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block5_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block5_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_out    │ (None, 8, 8,      │          0 │ conv4_block4_out… │
│ (Add)               │ 1024)             │            │ conv4_block5_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_preac… │ (None, 8, 8,      │      4,096 │ conv4_block5_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_preac… │ (None, 8, 8,      │          0 │ conv4_block6_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block6_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block6_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block6_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_pad  │ (None, 10, 10,    │          0 │ conv4_block6_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_conv │ (None, 4, 4, 256) │    589,824 │ conv4_block6_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_bn   │ (None, 4, 4, 256) │      1,024 │ conv4_block6_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_relu │ (None, 4, 4, 256) │          0 │ conv4_block6_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_2     │ (None, 4, 4,      │          0 │ conv4_block5_out… │
│ (MaxPooling2D)      │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_3_conv │ (None, 4, 4,      │    263,168 │ conv4_block6_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_out    │ (None, 4, 4,      │          0 │ max_pooling2d_2[… │
│ (Add)               │ 1024)             │            │ conv4_block6_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_preac… │ (None, 4, 4,      │      4,096 │ conv4_block6_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_preac… │ (None, 4, 4,      │          0 │ conv5_block1_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_1_conv │ (None, 4, 4, 512) │    524,288 │ conv5_block1_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_1_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block1_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_1_relu │ (None, 4, 4, 512) │          0 │ conv5_block1_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_pad  │ (None, 6, 6, 512) │          0 │ conv5_block1_1_r… │
│ (ZeroPadding2D)     │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_conv │ (None, 4, 4, 512) │  2,359,296 │ conv5_block1_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block1_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_relu │ (None, 4, 4, 512) │          0 │ conv5_block1_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_0_conv │ (None, 4, 4,      │  2,099,200 │ conv5_block1_pre… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_3_conv │ (None, 4, 4,      │  1,050,624 │ conv5_block1_2_r… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_out    │ (None, 4, 4,      │          0 │ conv5_block1_0_c… │
│ (Add)               │ 2048)             │            │ conv5_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_preac… │ (None, 4, 4,      │      8,192 │ conv5_block1_out… │
│ (BatchNormalizatio… │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_preac… │ (None, 4, 4,      │          0 │ conv5_block2_pre… │
│ (Activation)        │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_1_conv │ (None, 4, 4, 512) │  1,048,576 │ conv5_block2_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_1_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block2_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_1_relu │ (None, 4, 4, 512) │          0 │ conv5_block2_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_pad  │ (None, 6, 6, 512) │          0 │ conv5_block2_1_r… │
│ (ZeroPadding2D)     │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_conv │ (None, 4, 4, 512) │  2,359,296 │ conv5_block2_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block2_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_relu │ (None, 4, 4, 512) │          0 │ conv5_block2_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_3_conv │ (None, 4, 4,      │  1,050,624 │ conv5_block2_2_r… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_out    │ (None, 4, 4,      │          0 │ conv5_block1_out… │
│ (Add)               │ 2048)             │            │ conv5_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_preac… │ (None, 4, 4,      │      8,192 │ conv5_block2_out… │
│ (BatchNormalizatio… │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_preac… │ (None, 4, 4,      │          0 │ conv5_block3_pre… │
│ (Activation)        │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_1_conv │ (None, 4, 4, 512) │  1,048,576 │ conv5_block3_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_1_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block3_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_1_relu │ (None, 4, 4, 512) │          0 │ conv5_block3_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_pad  │ (None, 6, 6, 512) │          0 │ conv5_block3_1_r… │
│ (ZeroPadding2D)     │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_conv │ (None, 4, 4, 512) │  2,359,296 │ conv5_block3_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block3_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_relu │ (None, 4, 4, 512) │          0 │ conv5_block3_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_3_conv │ (None, 4, 4,      │  1,050,624 │ conv5_block3_2_r… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_out    │ (None, 4, 4,      │          0 │ conv5_block2_out… │
│ (Add)               │ 2048)             │            │ conv5_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ post_bn             │ (None, 4, 4,      │      8,192 │ conv5_block3_out… │
│ (BatchNormalizatio… │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ post_relu           │ (None, 4, 4,      │          0 │ post_bn[0][0]     │
│ (Activation)        │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ avg_pool            │ (None, 2048)      │          0 │ post_relu[0][0]   │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ predictions (Dense) │ (None, 2)         │      4,098 │ avg_pool[0][0]    │
└─────────────────────┴───────────────────┴────────────┴───────────────────┘
 Total params: 23,568,898 (89.91 MB)
 Trainable params: 23,523,458 (89.73 MB)
 Non-trainable params: 45,440 (177.50 KB)
In [75]:
early_stopping = EarlyStopping(monitor='val_loss', patience=5, restore_best_weights=True)
In [76]:
history = resnet50v2.fit(train_generator, epochs=15, validation_data=(x_val, y_val), callbacks=[early_stopping])
Epoch 1/15
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1737801466.644288      84 service.cc:145] XLA service 0x7c7b60009ea0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
I0000 00:00:1737801466.644360      84 service.cc:153]   StreamExecutor device (0): Tesla T4, Compute Capability 7.5
I0000 00:00:1737801466.644365      84 service.cc:153]   StreamExecutor device (1): Tesla T4, Compute Capability 7.5
  1/942 ━━━━━━━━━━━━━━━━━━━━ 11:03:05 42s/step - accuracy: 0.1250 - loss: 1.6167
I0000 00:00:1737801486.587161      84 device_compiler.h:188] Compiled cluster using XLA!  This line is logged at most once for the lifetime of the process.
942/942 ━━━━━━━━━━━━━━━━━━━━ 161s 126ms/step - accuracy: 0.8910 - loss: 0.3155 - val_accuracy: 0.1356 - val_loss: 7624.0493
Epoch 2/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 103s 109ms/step - accuracy: 0.9121 - loss: 0.2411 - val_accuracy: 0.8584 - val_loss: 52.5430
Epoch 3/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 103s 109ms/step - accuracy: 0.9141 - loss: 0.2359 - val_accuracy: 0.1356 - val_loss: 996.3787
Epoch 4/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 103s 109ms/step - accuracy: 0.9157 - loss: 0.2320 - val_accuracy: 0.1349 - val_loss: 589.8136
Epoch 5/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 103s 109ms/step - accuracy: 0.9162 - loss: 0.2226 - val_accuracy: 0.1356 - val_loss: 1934.4670
Epoch 6/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 103s 109ms/step - accuracy: 0.9208 - loss: 0.2159 - val_accuracy: 0.1356 - val_loss: 2821.8506
Epoch 7/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 103s 109ms/step - accuracy: 0.9197 - loss: 0.2139 - val_accuracy: 0.1356 - val_loss: 1790.7291
In [77]:
train_acc1 = history.history['accuracy']
val_acc1 = history.history['val_accuracy']

# Plot the training and validation accuracies
plt.plot(train_acc1, label='Training Accuracy')
plt.plot(val_acc1, label='Validation Accuracy')
plt.title('Training and Validation Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()
No description has been provided for this image
In [78]:
resnet50v2.save('my_model.h5')

ResNet152V2 Model¶

In [79]:
resnet152v2 = ResNet152V2(include_top=True,
                        weights=None,
                        input_tensor=None,
                        input_shape=(128, 128, 3),
                        pooling=None,
                        classes=2,
                        classifier_activation="sigmoid")

resnet152v2.name = "resnet152v2"
In [80]:
resnet152v2.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
resnet152v2.summary()
Model: "resnet152v2"
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Layer (type)        ┃ Output Shape      ┃    Param # ┃ Connected to      ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ input_layer_1       │ (None, 128, 128,  │          0 │ -                 │
│ (InputLayer)        │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_pad           │ (None, 134, 134,  │          0 │ input_layer_1[0]… │
│ (ZeroPadding2D)     │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_conv (Conv2D) │ (None, 64, 64,    │      9,472 │ conv1_pad[0][0]   │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ pool1_pad           │ (None, 66, 66,    │          0 │ conv1_conv[0][0]  │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ pool1_pool          │ (None, 32, 32,    │          0 │ pool1_pad[0][0]   │
│ (MaxPooling2D)      │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_preac… │ (None, 32, 32,    │        256 │ pool1_pool[0][0]  │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_preac… │ (None, 32, 32,    │          0 │ conv2_block1_pre… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_conv │ (None, 32, 32,    │      4,096 │ conv2_block1_pre… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_bn   │ (None, 32, 32,    │        256 │ conv2_block1_1_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_relu │ (None, 32, 32,    │          0 │ conv2_block1_1_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_pad  │ (None, 34, 34,    │          0 │ conv2_block1_1_r… │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_conv │ (None, 32, 32,    │     36,864 │ conv2_block1_2_p… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_bn   │ (None, 32, 32,    │        256 │ conv2_block1_2_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_relu │ (None, 32, 32,    │          0 │ conv2_block1_2_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_0_conv │ (None, 32, 32,    │     16,640 │ conv2_block1_pre… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_3_conv │ (None, 32, 32,    │     16,640 │ conv2_block1_2_r… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_out    │ (None, 32, 32,    │          0 │ conv2_block1_0_c… │
│ (Add)               │ 256)              │            │ conv2_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_preac… │ (None, 32, 32,    │      1,024 │ conv2_block1_out… │
│ (BatchNormalizatio… │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_preac… │ (None, 32, 32,    │          0 │ conv2_block2_pre… │
│ (Activation)        │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_conv │ (None, 32, 32,    │     16,384 │ conv2_block2_pre… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_bn   │ (None, 32, 32,    │        256 │ conv2_block2_1_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_relu │ (None, 32, 32,    │          0 │ conv2_block2_1_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_pad  │ (None, 34, 34,    │          0 │ conv2_block2_1_r… │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_conv │ (None, 32, 32,    │     36,864 │ conv2_block2_2_p… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_bn   │ (None, 32, 32,    │        256 │ conv2_block2_2_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_relu │ (None, 32, 32,    │          0 │ conv2_block2_2_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_3_conv │ (None, 32, 32,    │     16,640 │ conv2_block2_2_r… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_out    │ (None, 32, 32,    │          0 │ conv2_block1_out… │
│ (Add)               │ 256)              │            │ conv2_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_preac… │ (None, 32, 32,    │      1,024 │ conv2_block2_out… │
│ (BatchNormalizatio… │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_preac… │ (None, 32, 32,    │          0 │ conv2_block3_pre… │
│ (Activation)        │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_conv │ (None, 32, 32,    │     16,384 │ conv2_block3_pre… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_bn   │ (None, 32, 32,    │        256 │ conv2_block3_1_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_relu │ (None, 32, 32,    │          0 │ conv2_block3_1_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_pad  │ (None, 34, 34,    │          0 │ conv2_block3_1_r… │
│ (ZeroPadding2D)     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_conv │ (None, 16, 16,    │     36,864 │ conv2_block3_2_p… │
│ (Conv2D)            │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_bn   │ (None, 16, 16,    │        256 │ conv2_block3_2_c… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_relu │ (None, 16, 16,    │          0 │ conv2_block3_2_b… │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_3     │ (None, 16, 16,    │          0 │ conv2_block2_out… │
│ (MaxPooling2D)      │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_3_conv │ (None, 16, 16,    │     16,640 │ conv2_block3_2_r… │
│ (Conv2D)            │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_out    │ (None, 16, 16,    │          0 │ max_pooling2d_3[… │
│ (Add)               │ 256)              │            │ conv2_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_preac… │ (None, 16, 16,    │      1,024 │ conv2_block3_out… │
│ (BatchNormalizatio… │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_preac… │ (None, 16, 16,    │          0 │ conv3_block1_pre… │
│ (Activation)        │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_conv │ (None, 16, 16,    │     32,768 │ conv3_block1_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_bn   │ (None, 16, 16,    │        512 │ conv3_block1_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_relu │ (None, 16, 16,    │          0 │ conv3_block1_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_pad  │ (None, 18, 18,    │          0 │ conv3_block1_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block1_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_bn   │ (None, 16, 16,    │        512 │ conv3_block1_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_relu │ (None, 16, 16,    │          0 │ conv3_block1_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_0_conv │ (None, 16, 16,    │    131,584 │ conv3_block1_pre… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block1_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_out    │ (None, 16, 16,    │          0 │ conv3_block1_0_c… │
│ (Add)               │ 512)              │            │ conv3_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_preac… │ (None, 16, 16,    │      2,048 │ conv3_block1_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_preac… │ (None, 16, 16,    │          0 │ conv3_block2_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block2_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_bn   │ (None, 16, 16,    │        512 │ conv3_block2_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_relu │ (None, 16, 16,    │          0 │ conv3_block2_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_pad  │ (None, 18, 18,    │          0 │ conv3_block2_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block2_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_bn   │ (None, 16, 16,    │        512 │ conv3_block2_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_relu │ (None, 16, 16,    │          0 │ conv3_block2_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block2_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_out    │ (None, 16, 16,    │          0 │ conv3_block1_out… │
│ (Add)               │ 512)              │            │ conv3_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_preac… │ (None, 16, 16,    │      2,048 │ conv3_block2_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_preac… │ (None, 16, 16,    │          0 │ conv3_block3_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block3_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_bn   │ (None, 16, 16,    │        512 │ conv3_block3_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_relu │ (None, 16, 16,    │          0 │ conv3_block3_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_pad  │ (None, 18, 18,    │          0 │ conv3_block3_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block3_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_bn   │ (None, 16, 16,    │        512 │ conv3_block3_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_relu │ (None, 16, 16,    │          0 │ conv3_block3_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block3_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_out    │ (None, 16, 16,    │          0 │ conv3_block2_out… │
│ (Add)               │ 512)              │            │ conv3_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_preac… │ (None, 16, 16,    │      2,048 │ conv3_block3_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_preac… │ (None, 16, 16,    │          0 │ conv3_block4_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block4_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_bn   │ (None, 16, 16,    │        512 │ conv3_block4_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_relu │ (None, 16, 16,    │          0 │ conv3_block4_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_pad  │ (None, 18, 18,    │          0 │ conv3_block4_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block4_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_bn   │ (None, 16, 16,    │        512 │ conv3_block4_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_relu │ (None, 16, 16,    │          0 │ conv3_block4_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block4_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_out    │ (None, 16, 16,    │          0 │ conv3_block3_out… │
│ (Add)               │ 512)              │            │ conv3_block4_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_preac… │ (None, 16, 16,    │      2,048 │ conv3_block4_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_preac… │ (None, 16, 16,    │          0 │ conv3_block5_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block5_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_1_bn   │ (None, 16, 16,    │        512 │ conv3_block5_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_1_relu │ (None, 16, 16,    │          0 │ conv3_block5_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_2_pad  │ (None, 18, 18,    │          0 │ conv3_block5_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block5_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_2_bn   │ (None, 16, 16,    │        512 │ conv3_block5_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_2_relu │ (None, 16, 16,    │          0 │ conv3_block5_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block5_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block5_out    │ (None, 16, 16,    │          0 │ conv3_block4_out… │
│ (Add)               │ 512)              │            │ conv3_block5_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_preac… │ (None, 16, 16,    │      2,048 │ conv3_block5_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_preac… │ (None, 16, 16,    │          0 │ conv3_block6_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block6_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_1_bn   │ (None, 16, 16,    │        512 │ conv3_block6_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_1_relu │ (None, 16, 16,    │          0 │ conv3_block6_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_2_pad  │ (None, 18, 18,    │          0 │ conv3_block6_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block6_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_2_bn   │ (None, 16, 16,    │        512 │ conv3_block6_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_2_relu │ (None, 16, 16,    │          0 │ conv3_block6_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block6_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block6_out    │ (None, 16, 16,    │          0 │ conv3_block5_out… │
│ (Add)               │ 512)              │            │ conv3_block6_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_preac… │ (None, 16, 16,    │      2,048 │ conv3_block6_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_preac… │ (None, 16, 16,    │          0 │ conv3_block7_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block7_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_1_bn   │ (None, 16, 16,    │        512 │ conv3_block7_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_1_relu │ (None, 16, 16,    │          0 │ conv3_block7_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_2_pad  │ (None, 18, 18,    │          0 │ conv3_block7_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_2_conv │ (None, 16, 16,    │    147,456 │ conv3_block7_2_p… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_2_bn   │ (None, 16, 16,    │        512 │ conv3_block7_2_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_2_relu │ (None, 16, 16,    │          0 │ conv3_block7_2_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_3_conv │ (None, 16, 16,    │     66,048 │ conv3_block7_2_r… │
│ (Conv2D)            │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block7_out    │ (None, 16, 16,    │          0 │ conv3_block6_out… │
│ (Add)               │ 512)              │            │ conv3_block7_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_preac… │ (None, 16, 16,    │      2,048 │ conv3_block7_out… │
│ (BatchNormalizatio… │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_preac… │ (None, 16, 16,    │          0 │ conv3_block8_pre… │
│ (Activation)        │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_1_conv │ (None, 16, 16,    │     65,536 │ conv3_block8_pre… │
│ (Conv2D)            │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_1_bn   │ (None, 16, 16,    │        512 │ conv3_block8_1_c… │
│ (BatchNormalizatio… │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_1_relu │ (None, 16, 16,    │          0 │ conv3_block8_1_b… │
│ (Activation)        │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_2_pad  │ (None, 18, 18,    │          0 │ conv3_block8_1_r… │
│ (ZeroPadding2D)     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_2_conv │ (None, 8, 8, 128) │    147,456 │ conv3_block8_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_2_bn   │ (None, 8, 8, 128) │        512 │ conv3_block8_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_2_relu │ (None, 8, 8, 128) │          0 │ conv3_block8_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_4     │ (None, 8, 8, 512) │          0 │ conv3_block7_out… │
│ (MaxPooling2D)      │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_3_conv │ (None, 8, 8, 512) │     66,048 │ conv3_block8_2_r… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block8_out    │ (None, 8, 8, 512) │          0 │ max_pooling2d_4[… │
│ (Add)               │                   │            │ conv3_block8_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_preac… │ (None, 8, 8, 512) │      2,048 │ conv3_block8_out… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_preac… │ (None, 8, 8, 512) │          0 │ conv4_block1_pre… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_conv │ (None, 8, 8, 256) │    131,072 │ conv4_block1_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block1_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block1_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_pad  │ (None, 10, 10,    │          0 │ conv4_block1_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block1_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block1_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block1_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_0_conv │ (None, 8, 8,      │    525,312 │ conv4_block1_pre… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block1_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_out    │ (None, 8, 8,      │          0 │ conv4_block1_0_c… │
│ (Add)               │ 1024)             │            │ conv4_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_preac… │ (None, 8, 8,      │      4,096 │ conv4_block1_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_preac… │ (None, 8, 8,      │          0 │ conv4_block2_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block2_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block2_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block2_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_pad  │ (None, 10, 10,    │          0 │ conv4_block2_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block2_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block2_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block2_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block2_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_out    │ (None, 8, 8,      │          0 │ conv4_block1_out… │
│ (Add)               │ 1024)             │            │ conv4_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_preac… │ (None, 8, 8,      │      4,096 │ conv4_block2_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_preac… │ (None, 8, 8,      │          0 │ conv4_block3_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block3_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block3_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block3_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_pad  │ (None, 10, 10,    │          0 │ conv4_block3_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block3_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block3_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block3_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block3_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block3_out    │ (None, 8, 8,      │          0 │ conv4_block2_out… │
│ (Add)               │ 1024)             │            │ conv4_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_preac… │ (None, 8, 8,      │      4,096 │ conv4_block3_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_preac… │ (None, 8, 8,      │          0 │ conv4_block4_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block4_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block4_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block4_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_pad  │ (None, 10, 10,    │          0 │ conv4_block4_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block4_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block4_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block4_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block4_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block4_out    │ (None, 8, 8,      │          0 │ conv4_block3_out… │
│ (Add)               │ 1024)             │            │ conv4_block4_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_preac… │ (None, 8, 8,      │      4,096 │ conv4_block4_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_preac… │ (None, 8, 8,      │          0 │ conv4_block5_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block5_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block5_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block5_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_pad  │ (None, 10, 10,    │          0 │ conv4_block5_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block5_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block5_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block5_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block5_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block5_out    │ (None, 8, 8,      │          0 │ conv4_block4_out… │
│ (Add)               │ 1024)             │            │ conv4_block5_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_preac… │ (None, 8, 8,      │      4,096 │ conv4_block5_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_preac… │ (None, 8, 8,      │          0 │ conv4_block6_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block6_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block6_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block6_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_pad  │ (None, 10, 10,    │          0 │ conv4_block6_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block6_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block6_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block6_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block6_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block6_out    │ (None, 8, 8,      │          0 │ conv4_block5_out… │
│ (Add)               │ 1024)             │            │ conv4_block6_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_preac… │ (None, 8, 8,      │      4,096 │ conv4_block6_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_preac… │ (None, 8, 8,      │          0 │ conv4_block7_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block7_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block7_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block7_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_2_pad  │ (None, 10, 10,    │          0 │ conv4_block7_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block7_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block7_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block7_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block7_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block7_out    │ (None, 8, 8,      │          0 │ conv4_block6_out… │
│ (Add)               │ 1024)             │            │ conv4_block7_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_preac… │ (None, 8, 8,      │      4,096 │ conv4_block7_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_preac… │ (None, 8, 8,      │          0 │ conv4_block8_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block8_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block8_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block8_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_2_pad  │ (None, 10, 10,    │          0 │ conv4_block8_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block8_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block8_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block8_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block8_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block8_out    │ (None, 8, 8,      │          0 │ conv4_block7_out… │
│ (Add)               │ 1024)             │            │ conv4_block8_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_preac… │ (None, 8, 8,      │      4,096 │ conv4_block8_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_preac… │ (None, 8, 8,      │          0 │ conv4_block9_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_1_conv │ (None, 8, 8, 256) │    262,144 │ conv4_block9_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_1_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block9_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_1_relu │ (None, 8, 8, 256) │          0 │ conv4_block9_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_2_pad  │ (None, 10, 10,    │          0 │ conv4_block9_1_r… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_2_conv │ (None, 8, 8, 256) │    589,824 │ conv4_block9_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_2_bn   │ (None, 8, 8, 256) │      1,024 │ conv4_block9_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_2_relu │ (None, 8, 8, 256) │          0 │ conv4_block9_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_3_conv │ (None, 8, 8,      │    263,168 │ conv4_block9_2_r… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block9_out    │ (None, 8, 8,      │          0 │ conv4_block8_out… │
│ (Add)               │ 1024)             │            │ conv4_block9_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_prea… │ (None, 8, 8,      │      4,096 │ conv4_block9_out… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_prea… │ (None, 8, 8,      │          0 │ conv4_block10_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block10_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block10_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block10_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_2_pad │ (None, 10, 10,    │          0 │ conv4_block10_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block10_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block10_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block10_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block10_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block10_out   │ (None, 8, 8,      │          0 │ conv4_block9_out… │
│ (Add)               │ 1024)             │            │ conv4_block10_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_prea… │ (None, 8, 8,      │      4,096 │ conv4_block10_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_prea… │ (None, 8, 8,      │          0 │ conv4_block11_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block11_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block11_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block11_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_2_pad │ (None, 10, 10,    │          0 │ conv4_block11_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block11_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block11_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block11_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block11_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block11_out   │ (None, 8, 8,      │          0 │ conv4_block10_ou… │
│ (Add)               │ 1024)             │            │ conv4_block11_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_prea… │ (None, 8, 8,      │      4,096 │ conv4_block11_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_prea… │ (None, 8, 8,      │          0 │ conv4_block12_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block12_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block12_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block12_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_2_pad │ (None, 10, 10,    │          0 │ conv4_block12_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block12_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block12_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block12_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block12_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block12_out   │ (None, 8, 8,      │          0 │ conv4_block11_ou… │
│ (Add)               │ 1024)             │            │ conv4_block12_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_prea… │ (None, 8, 8,      │      4,096 │ conv4_block12_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_prea… │ (None, 8, 8,      │          0 │ conv4_block13_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block13_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block13_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block13_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_2_pad │ (None, 10, 10,    │          0 │ conv4_block13_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block13_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block13_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block13_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block13_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block13_out   │ (None, 8, 8,      │          0 │ conv4_block12_ou… │
│ (Add)               │ 1024)             │            │ conv4_block13_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_prea… │ (None, 8, 8,      │      4,096 │ conv4_block13_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_prea… │ (None, 8, 8,      │          0 │ conv4_block14_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block14_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block14_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block14_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_2_pad │ (None, 10, 10,    │          0 │ conv4_block14_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block14_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block14_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block14_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block14_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block14_out   │ (None, 8, 8,      │          0 │ conv4_block13_ou… │
│ (Add)               │ 1024)             │            │ conv4_block14_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_prea… │ (None, 8, 8,      │      4,096 │ conv4_block14_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_prea… │ (None, 8, 8,      │          0 │ conv4_block15_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block15_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block15_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block15_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_2_pad │ (None, 10, 10,    │          0 │ conv4_block15_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block15_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block15_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block15_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block15_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block15_out   │ (None, 8, 8,      │          0 │ conv4_block14_ou… │
│ (Add)               │ 1024)             │            │ conv4_block15_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_prea… │ (None, 8, 8,      │      4,096 │ conv4_block15_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_prea… │ (None, 8, 8,      │          0 │ conv4_block16_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block16_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block16_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block16_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_2_pad │ (None, 10, 10,    │          0 │ conv4_block16_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block16_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block16_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block16_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block16_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block16_out   │ (None, 8, 8,      │          0 │ conv4_block15_ou… │
│ (Add)               │ 1024)             │            │ conv4_block16_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_prea… │ (None, 8, 8,      │      4,096 │ conv4_block16_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_prea… │ (None, 8, 8,      │          0 │ conv4_block17_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block17_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block17_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block17_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_2_pad │ (None, 10, 10,    │          0 │ conv4_block17_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block17_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block17_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block17_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block17_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block17_out   │ (None, 8, 8,      │          0 │ conv4_block16_ou… │
│ (Add)               │ 1024)             │            │ conv4_block17_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_prea… │ (None, 8, 8,      │      4,096 │ conv4_block17_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_prea… │ (None, 8, 8,      │          0 │ conv4_block18_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block18_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block18_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block18_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_2_pad │ (None, 10, 10,    │          0 │ conv4_block18_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block18_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block18_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block18_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block18_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block18_out   │ (None, 8, 8,      │          0 │ conv4_block17_ou… │
│ (Add)               │ 1024)             │            │ conv4_block18_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_prea… │ (None, 8, 8,      │      4,096 │ conv4_block18_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_prea… │ (None, 8, 8,      │          0 │ conv4_block19_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block19_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block19_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block19_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_2_pad │ (None, 10, 10,    │          0 │ conv4_block19_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block19_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block19_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block19_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block19_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block19_out   │ (None, 8, 8,      │          0 │ conv4_block18_ou… │
│ (Add)               │ 1024)             │            │ conv4_block19_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_prea… │ (None, 8, 8,      │      4,096 │ conv4_block19_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_prea… │ (None, 8, 8,      │          0 │ conv4_block20_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block20_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block20_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block20_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_2_pad │ (None, 10, 10,    │          0 │ conv4_block20_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block20_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block20_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block20_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block20_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block20_out   │ (None, 8, 8,      │          0 │ conv4_block19_ou… │
│ (Add)               │ 1024)             │            │ conv4_block20_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_prea… │ (None, 8, 8,      │      4,096 │ conv4_block20_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_prea… │ (None, 8, 8,      │          0 │ conv4_block21_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block21_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block21_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block21_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_2_pad │ (None, 10, 10,    │          0 │ conv4_block21_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block21_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block21_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block21_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block21_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block21_out   │ (None, 8, 8,      │          0 │ conv4_block20_ou… │
│ (Add)               │ 1024)             │            │ conv4_block21_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_prea… │ (None, 8, 8,      │      4,096 │ conv4_block21_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_prea… │ (None, 8, 8,      │          0 │ conv4_block22_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block22_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block22_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block22_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_2_pad │ (None, 10, 10,    │          0 │ conv4_block22_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block22_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block22_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block22_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block22_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block22_out   │ (None, 8, 8,      │          0 │ conv4_block21_ou… │
│ (Add)               │ 1024)             │            │ conv4_block22_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_prea… │ (None, 8, 8,      │      4,096 │ conv4_block22_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_prea… │ (None, 8, 8,      │          0 │ conv4_block23_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block23_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block23_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block23_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_2_pad │ (None, 10, 10,    │          0 │ conv4_block23_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block23_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block23_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block23_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block23_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block23_out   │ (None, 8, 8,      │          0 │ conv4_block22_ou… │
│ (Add)               │ 1024)             │            │ conv4_block23_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_prea… │ (None, 8, 8,      │      4,096 │ conv4_block23_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_prea… │ (None, 8, 8,      │          0 │ conv4_block24_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block24_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block24_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block24_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_2_pad │ (None, 10, 10,    │          0 │ conv4_block24_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block24_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block24_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block24_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block24_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block24_out   │ (None, 8, 8,      │          0 │ conv4_block23_ou… │
│ (Add)               │ 1024)             │            │ conv4_block24_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_prea… │ (None, 8, 8,      │      4,096 │ conv4_block24_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_prea… │ (None, 8, 8,      │          0 │ conv4_block25_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block25_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block25_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block25_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_2_pad │ (None, 10, 10,    │          0 │ conv4_block25_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block25_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block25_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block25_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block25_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block25_out   │ (None, 8, 8,      │          0 │ conv4_block24_ou… │
│ (Add)               │ 1024)             │            │ conv4_block25_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_prea… │ (None, 8, 8,      │      4,096 │ conv4_block25_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_prea… │ (None, 8, 8,      │          0 │ conv4_block26_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block26_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block26_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block26_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_2_pad │ (None, 10, 10,    │          0 │ conv4_block26_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block26_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block26_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block26_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block26_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block26_out   │ (None, 8, 8,      │          0 │ conv4_block25_ou… │
│ (Add)               │ 1024)             │            │ conv4_block26_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_prea… │ (None, 8, 8,      │      4,096 │ conv4_block26_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_prea… │ (None, 8, 8,      │          0 │ conv4_block27_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block27_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block27_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block27_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_2_pad │ (None, 10, 10,    │          0 │ conv4_block27_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block27_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block27_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block27_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block27_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block27_out   │ (None, 8, 8,      │          0 │ conv4_block26_ou… │
│ (Add)               │ 1024)             │            │ conv4_block27_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_prea… │ (None, 8, 8,      │      4,096 │ conv4_block27_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_prea… │ (None, 8, 8,      │          0 │ conv4_block28_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block28_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block28_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block28_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_2_pad │ (None, 10, 10,    │          0 │ conv4_block28_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block28_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block28_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block28_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block28_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block28_out   │ (None, 8, 8,      │          0 │ conv4_block27_ou… │
│ (Add)               │ 1024)             │            │ conv4_block28_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_prea… │ (None, 8, 8,      │      4,096 │ conv4_block28_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_prea… │ (None, 8, 8,      │          0 │ conv4_block29_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block29_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block29_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block29_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_2_pad │ (None, 10, 10,    │          0 │ conv4_block29_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block29_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block29_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block29_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block29_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block29_out   │ (None, 8, 8,      │          0 │ conv4_block28_ou… │
│ (Add)               │ 1024)             │            │ conv4_block29_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_prea… │ (None, 8, 8,      │      4,096 │ conv4_block29_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_prea… │ (None, 8, 8,      │          0 │ conv4_block30_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block30_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block30_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block30_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_2_pad │ (None, 10, 10,    │          0 │ conv4_block30_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block30_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block30_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block30_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block30_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block30_out   │ (None, 8, 8,      │          0 │ conv4_block29_ou… │
│ (Add)               │ 1024)             │            │ conv4_block30_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_prea… │ (None, 8, 8,      │      4,096 │ conv4_block30_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_prea… │ (None, 8, 8,      │          0 │ conv4_block31_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block31_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block31_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block31_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_2_pad │ (None, 10, 10,    │          0 │ conv4_block31_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block31_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block31_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block31_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block31_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block31_out   │ (None, 8, 8,      │          0 │ conv4_block30_ou… │
│ (Add)               │ 1024)             │            │ conv4_block31_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_prea… │ (None, 8, 8,      │      4,096 │ conv4_block31_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_prea… │ (None, 8, 8,      │          0 │ conv4_block32_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block32_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block32_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block32_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_2_pad │ (None, 10, 10,    │          0 │ conv4_block32_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block32_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block32_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block32_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block32_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block32_out   │ (None, 8, 8,      │          0 │ conv4_block31_ou… │
│ (Add)               │ 1024)             │            │ conv4_block32_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_prea… │ (None, 8, 8,      │      4,096 │ conv4_block32_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_prea… │ (None, 8, 8,      │          0 │ conv4_block33_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block33_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block33_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block33_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_2_pad │ (None, 10, 10,    │          0 │ conv4_block33_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block33_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block33_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block33_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block33_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block33_out   │ (None, 8, 8,      │          0 │ conv4_block32_ou… │
│ (Add)               │ 1024)             │            │ conv4_block33_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_prea… │ (None, 8, 8,      │      4,096 │ conv4_block33_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_prea… │ (None, 8, 8,      │          0 │ conv4_block34_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block34_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block34_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block34_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_2_pad │ (None, 10, 10,    │          0 │ conv4_block34_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block34_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block34_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block34_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block34_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block34_out   │ (None, 8, 8,      │          0 │ conv4_block33_ou… │
│ (Add)               │ 1024)             │            │ conv4_block34_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_prea… │ (None, 8, 8,      │      4,096 │ conv4_block34_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_prea… │ (None, 8, 8,      │          0 │ conv4_block35_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block35_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block35_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block35_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_2_pad │ (None, 10, 10,    │          0 │ conv4_block35_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_2_co… │ (None, 8, 8, 256) │    589,824 │ conv4_block35_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_2_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block35_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_2_re… │ (None, 8, 8, 256) │          0 │ conv4_block35_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_3_co… │ (None, 8, 8,      │    263,168 │ conv4_block35_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block35_out   │ (None, 8, 8,      │          0 │ conv4_block34_ou… │
│ (Add)               │ 1024)             │            │ conv4_block35_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_prea… │ (None, 8, 8,      │      4,096 │ conv4_block35_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_prea… │ (None, 8, 8,      │          0 │ conv4_block36_pr… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_1_co… │ (None, 8, 8, 256) │    262,144 │ conv4_block36_pr… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_1_bn  │ (None, 8, 8, 256) │      1,024 │ conv4_block36_1_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_1_re… │ (None, 8, 8, 256) │          0 │ conv4_block36_1_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_2_pad │ (None, 10, 10,    │          0 │ conv4_block36_1_… │
│ (ZeroPadding2D)     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_2_co… │ (None, 4, 4, 256) │    589,824 │ conv4_block36_2_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_2_bn  │ (None, 4, 4, 256) │      1,024 │ conv4_block36_2_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_2_re… │ (None, 4, 4, 256) │          0 │ conv4_block36_2_… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_5     │ (None, 4, 4,      │          0 │ conv4_block35_ou… │
│ (MaxPooling2D)      │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_3_co… │ (None, 4, 4,      │    263,168 │ conv4_block36_2_… │
│ (Conv2D)            │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block36_out   │ (None, 4, 4,      │          0 │ max_pooling2d_5[… │
│ (Add)               │ 1024)             │            │ conv4_block36_3_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_preac… │ (None, 4, 4,      │      4,096 │ conv4_block36_ou… │
│ (BatchNormalizatio… │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_preac… │ (None, 4, 4,      │          0 │ conv5_block1_pre… │
│ (Activation)        │ 1024)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_1_conv │ (None, 4, 4, 512) │    524,288 │ conv5_block1_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_1_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block1_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_1_relu │ (None, 4, 4, 512) │          0 │ conv5_block1_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_pad  │ (None, 6, 6, 512) │          0 │ conv5_block1_1_r… │
│ (ZeroPadding2D)     │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_conv │ (None, 4, 4, 512) │  2,359,296 │ conv5_block1_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block1_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_2_relu │ (None, 4, 4, 512) │          0 │ conv5_block1_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_0_conv │ (None, 4, 4,      │  2,099,200 │ conv5_block1_pre… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_3_conv │ (None, 4, 4,      │  1,050,624 │ conv5_block1_2_r… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block1_out    │ (None, 4, 4,      │          0 │ conv5_block1_0_c… │
│ (Add)               │ 2048)             │            │ conv5_block1_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_preac… │ (None, 4, 4,      │      8,192 │ conv5_block1_out… │
│ (BatchNormalizatio… │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_preac… │ (None, 4, 4,      │          0 │ conv5_block2_pre… │
│ (Activation)        │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_1_conv │ (None, 4, 4, 512) │  1,048,576 │ conv5_block2_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_1_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block2_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_1_relu │ (None, 4, 4, 512) │          0 │ conv5_block2_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_pad  │ (None, 6, 6, 512) │          0 │ conv5_block2_1_r… │
│ (ZeroPadding2D)     │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_conv │ (None, 4, 4, 512) │  2,359,296 │ conv5_block2_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block2_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_2_relu │ (None, 4, 4, 512) │          0 │ conv5_block2_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_3_conv │ (None, 4, 4,      │  1,050,624 │ conv5_block2_2_r… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block2_out    │ (None, 4, 4,      │          0 │ conv5_block1_out… │
│ (Add)               │ 2048)             │            │ conv5_block2_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_preac… │ (None, 4, 4,      │      8,192 │ conv5_block2_out… │
│ (BatchNormalizatio… │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_preac… │ (None, 4, 4,      │          0 │ conv5_block3_pre… │
│ (Activation)        │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_1_conv │ (None, 4, 4, 512) │  1,048,576 │ conv5_block3_pre… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_1_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block3_1_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_1_relu │ (None, 4, 4, 512) │          0 │ conv5_block3_1_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_pad  │ (None, 6, 6, 512) │          0 │ conv5_block3_1_r… │
│ (ZeroPadding2D)     │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_conv │ (None, 4, 4, 512) │  2,359,296 │ conv5_block3_2_p… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_bn   │ (None, 4, 4, 512) │      2,048 │ conv5_block3_2_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_2_relu │ (None, 4, 4, 512) │          0 │ conv5_block3_2_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_3_conv │ (None, 4, 4,      │  1,050,624 │ conv5_block3_2_r… │
│ (Conv2D)            │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv5_block3_out    │ (None, 4, 4,      │          0 │ conv5_block2_out… │
│ (Add)               │ 2048)             │            │ conv5_block3_3_c… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ post_bn             │ (None, 4, 4,      │      8,192 │ conv5_block3_out… │
│ (BatchNormalizatio… │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ post_relu           │ (None, 4, 4,      │          0 │ post_bn[0][0]     │
│ (Activation)        │ 2048)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ avg_pool            │ (None, 2048)      │          0 │ post_relu[0][0]   │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ predictions (Dense) │ (None, 2)         │      4,098 │ avg_pool[0][0]    │
└─────────────────────┴───────────────────┴────────────┴───────────────────┘
 Total params: 58,335,746 (222.53 MB)
 Trainable params: 58,192,002 (221.98 MB)
 Non-trainable params: 143,744 (561.50 KB)
In [81]:
history = resnet152v2.fit(train_generator, epochs=15, validation_data=(x_val, y_val), callbacks=[early_stopping])
Epoch 1/15
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1737802349.994857      83 asm_compiler.cc:369] ptxas warning : Registers are spilled to local memory in function 'loop_add_subtract_fusion_64', 40 bytes spill stores, 40 bytes spill loads

163/942 ━━━━━━━━━━━━━━━━━━━━ 3:34 275ms/step - accuracy: 0.8574 - loss: 0.4781
I0000 00:00:1737802437.187498      83 asm_compiler.cc:369] ptxas warning : Registers are spilled to local memory in function 'loop_add_subtract_fusion_62', 40 bytes spill stores, 40 bytes spill loads
ptxas warning : Registers are spilled to local memory in function 'loop_add_subtract_fusion_85', 40 bytes spill stores, 40 bytes spill loads

942/942 ━━━━━━━━━━━━━━━━━━━━ 450s 355ms/step - accuracy: 0.8838 - loss: 0.3493 - val_accuracy: 0.1356 - val_loss: 1444.4634
Epoch 2/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 280s 297ms/step - accuracy: 0.9141 - loss: 0.2417 - val_accuracy: 0.1356 - val_loss: 1402.9111
Epoch 3/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 279s 296ms/step - accuracy: 0.9131 - loss: 0.2454 - val_accuracy: 0.1356 - val_loss: 558.2667
Epoch 4/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 278s 295ms/step - accuracy: 0.9182 - loss: 0.2236 - val_accuracy: 0.1356 - val_loss: 1038.1898
Epoch 5/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 278s 295ms/step - accuracy: 0.9188 - loss: 0.2254 - val_accuracy: 0.1356 - val_loss: 1202.0317
In [82]:
train_acc1 = history.history['accuracy']
val_acc1 = history.history['val_accuracy']

# Plot the training and validation accuracies
plt.plot(train_acc1, label='Training Accuracy')
plt.plot(val_acc1, label='Validation Accuracy')
plt.title('Training and Validation Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()
No description has been provided for this image
In [83]:
# images=[]

# for i in range (len(test_df)):
#     image = Image.open(test_df['path_jpg'][i])
#     image = np.array(image)
#     image = resize_image(image)
#     images.append(image)
In [84]:
# images = np.array(images)
# images = np.stack(images, axis=0)
# target_reshaped = test_df['target'].to_numpy()
# target_reshaped = np.stack(target_reshaped, axis=0)

EfficientNetB7¶

In [85]:
efficientnetb7 = keras.applications.EfficientNetB7(include_top=True,
                                                   weights=None,
                                                   input_tensor=None,
                                                   input_shape=(128, 128, 3),
                                                   pooling=None,
                                                   classes=2,
                                                   classifier_activation="sigmoid")

efficientnetb7.name = 'efficientnetb7'
In [86]:
efficientnetb7.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
efficientnetb7.summary()
Model: "efficientnetb7"
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Layer (type)        ┃ Output Shape      ┃    Param # ┃ Connected to      ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ input_layer_2       │ (None, 128, 128,  │          0 │ -                 │
│ (InputLayer)        │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ rescaling           │ (None, 128, 128,  │          0 │ input_layer_2[0]… │
│ (Rescaling)         │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ normalization       │ (None, 128, 128,  │          7 │ rescaling[0][0]   │
│ (Normalization)     │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ stem_conv_pad       │ (None, 129, 129,  │          0 │ normalization[0]… │
│ (ZeroPadding2D)     │ 3)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ stem_conv (Conv2D)  │ (None, 64, 64,    │      1,728 │ stem_conv_pad[0]… │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ stem_bn             │ (None, 64, 64,    │        256 │ stem_conv[0][0]   │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ stem_activation     │ (None, 64, 64,    │          0 │ stem_bn[0][0]     │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_dwconv      │ (None, 64, 64,    │        576 │ stem_activation[… │
│ (DepthwiseConv2D)   │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_bn          │ (None, 64, 64,    │        256 │ block1a_dwconv[0… │
│ (BatchNormalizatio… │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_activation  │ (None, 64, 64,    │          0 │ block1a_bn[0][0]  │
│ (Activation)        │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_se_squeeze  │ (None, 64)        │          0 │ block1a_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_se_reshape  │ (None, 1, 1, 64)  │          0 │ block1a_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_se_reduce   │ (None, 1, 1, 16)  │      1,040 │ block1a_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_se_expand   │ (None, 1, 1, 64)  │      1,088 │ block1a_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_se_excite   │ (None, 64, 64,    │          0 │ block1a_activati… │
│ (Multiply)          │ 64)               │            │ block1a_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_project_co… │ (None, 64, 64,    │      2,048 │ block1a_se_excit… │
│ (Conv2D)            │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1a_project_bn  │ (None, 64, 64,    │        128 │ block1a_project_… │
│ (BatchNormalizatio… │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_dwconv      │ (None, 64, 64,    │        288 │ block1a_project_… │
│ (DepthwiseConv2D)   │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_bn          │ (None, 64, 64,    │        128 │ block1b_dwconv[0… │
│ (BatchNormalizatio… │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_activation  │ (None, 64, 64,    │          0 │ block1b_bn[0][0]  │
│ (Activation)        │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_se_squeeze  │ (None, 32)        │          0 │ block1b_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_se_reshape  │ (None, 1, 1, 32)  │          0 │ block1b_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_se_reduce   │ (None, 1, 1, 8)   │        264 │ block1b_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_se_expand   │ (None, 1, 1, 32)  │        288 │ block1b_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_se_excite   │ (None, 64, 64,    │          0 │ block1b_activati… │
│ (Multiply)          │ 32)               │            │ block1b_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_project_co… │ (None, 64, 64,    │      1,024 │ block1b_se_excit… │
│ (Conv2D)            │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_project_bn  │ (None, 64, 64,    │        128 │ block1b_project_… │
│ (BatchNormalizatio… │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_drop        │ (None, 64, 64,    │          0 │ block1b_project_… │
│ (Dropout)           │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1b_add (Add)   │ (None, 64, 64,    │          0 │ block1b_drop[0][… │
│                     │ 32)               │            │ block1a_project_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_dwconv      │ (None, 64, 64,    │        288 │ block1b_add[0][0] │
│ (DepthwiseConv2D)   │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_bn          │ (None, 64, 64,    │        128 │ block1c_dwconv[0… │
│ (BatchNormalizatio… │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_activation  │ (None, 64, 64,    │          0 │ block1c_bn[0][0]  │
│ (Activation)        │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_se_squeeze  │ (None, 32)        │          0 │ block1c_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_se_reshape  │ (None, 1, 1, 32)  │          0 │ block1c_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_se_reduce   │ (None, 1, 1, 8)   │        264 │ block1c_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_se_expand   │ (None, 1, 1, 32)  │        288 │ block1c_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_se_excite   │ (None, 64, 64,    │          0 │ block1c_activati… │
│ (Multiply)          │ 32)               │            │ block1c_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_project_co… │ (None, 64, 64,    │      1,024 │ block1c_se_excit… │
│ (Conv2D)            │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_project_bn  │ (None, 64, 64,    │        128 │ block1c_project_… │
│ (BatchNormalizatio… │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_drop        │ (None, 64, 64,    │          0 │ block1c_project_… │
│ (Dropout)           │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1c_add (Add)   │ (None, 64, 64,    │          0 │ block1c_drop[0][… │
│                     │ 32)               │            │ block1b_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_dwconv      │ (None, 64, 64,    │        288 │ block1c_add[0][0] │
│ (DepthwiseConv2D)   │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_bn          │ (None, 64, 64,    │        128 │ block1d_dwconv[0… │
│ (BatchNormalizatio… │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_activation  │ (None, 64, 64,    │          0 │ block1d_bn[0][0]  │
│ (Activation)        │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_se_squeeze  │ (None, 32)        │          0 │ block1d_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_se_reshape  │ (None, 1, 1, 32)  │          0 │ block1d_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_se_reduce   │ (None, 1, 1, 8)   │        264 │ block1d_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_se_expand   │ (None, 1, 1, 32)  │        288 │ block1d_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_se_excite   │ (None, 64, 64,    │          0 │ block1d_activati… │
│ (Multiply)          │ 32)               │            │ block1d_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_project_co… │ (None, 64, 64,    │      1,024 │ block1d_se_excit… │
│ (Conv2D)            │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_project_bn  │ (None, 64, 64,    │        128 │ block1d_project_… │
│ (BatchNormalizatio… │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_drop        │ (None, 64, 64,    │          0 │ block1d_project_… │
│ (Dropout)           │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block1d_add (Add)   │ (None, 64, 64,    │          0 │ block1d_drop[0][… │
│                     │ 32)               │            │ block1c_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_expand_conv │ (None, 64, 64,    │      6,144 │ block1d_add[0][0] │
│ (Conv2D)            │ 192)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_expand_bn   │ (None, 64, 64,    │        768 │ block2a_expand_c… │
│ (BatchNormalizatio… │ 192)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_expand_act… │ (None, 64, 64,    │          0 │ block2a_expand_b… │
│ (Activation)        │ 192)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_dwconv_pad  │ (None, 65, 65,    │          0 │ block2a_expand_a… │
│ (ZeroPadding2D)     │ 192)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_dwconv      │ (None, 32, 32,    │      1,728 │ block2a_dwconv_p… │
│ (DepthwiseConv2D)   │ 192)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_bn          │ (None, 32, 32,    │        768 │ block2a_dwconv[0… │
│ (BatchNormalizatio… │ 192)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_activation  │ (None, 32, 32,    │          0 │ block2a_bn[0][0]  │
│ (Activation)        │ 192)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_se_squeeze  │ (None, 192)       │          0 │ block2a_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_se_reshape  │ (None, 1, 1, 192) │          0 │ block2a_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_se_reduce   │ (None, 1, 1, 8)   │      1,544 │ block2a_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_se_expand   │ (None, 1, 1, 192) │      1,728 │ block2a_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_se_excite   │ (None, 32, 32,    │          0 │ block2a_activati… │
│ (Multiply)          │ 192)              │            │ block2a_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_project_co… │ (None, 32, 32,    │      9,216 │ block2a_se_excit… │
│ (Conv2D)            │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2a_project_bn  │ (None, 32, 32,    │        192 │ block2a_project_… │
│ (BatchNormalizatio… │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_expand_conv │ (None, 32, 32,    │     13,824 │ block2a_project_… │
│ (Conv2D)            │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_expand_bn   │ (None, 32, 32,    │      1,152 │ block2b_expand_c… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_expand_act… │ (None, 32, 32,    │          0 │ block2b_expand_b… │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_dwconv      │ (None, 32, 32,    │      2,592 │ block2b_expand_a… │
│ (DepthwiseConv2D)   │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_bn          │ (None, 32, 32,    │      1,152 │ block2b_dwconv[0… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_activation  │ (None, 32, 32,    │          0 │ block2b_bn[0][0]  │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_se_squeeze  │ (None, 288)       │          0 │ block2b_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_se_reshape  │ (None, 1, 1, 288) │          0 │ block2b_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_se_reduce   │ (None, 1, 1, 12)  │      3,468 │ block2b_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_se_expand   │ (None, 1, 1, 288) │      3,744 │ block2b_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_se_excite   │ (None, 32, 32,    │          0 │ block2b_activati… │
│ (Multiply)          │ 288)              │            │ block2b_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_project_co… │ (None, 32, 32,    │     13,824 │ block2b_se_excit… │
│ (Conv2D)            │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_project_bn  │ (None, 32, 32,    │        192 │ block2b_project_… │
│ (BatchNormalizatio… │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_drop        │ (None, 32, 32,    │          0 │ block2b_project_… │
│ (Dropout)           │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2b_add (Add)   │ (None, 32, 32,    │          0 │ block2b_drop[0][… │
│                     │ 48)               │            │ block2a_project_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_expand_conv │ (None, 32, 32,    │     13,824 │ block2b_add[0][0] │
│ (Conv2D)            │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_expand_bn   │ (None, 32, 32,    │      1,152 │ block2c_expand_c… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_expand_act… │ (None, 32, 32,    │          0 │ block2c_expand_b… │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_dwconv      │ (None, 32, 32,    │      2,592 │ block2c_expand_a… │
│ (DepthwiseConv2D)   │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_bn          │ (None, 32, 32,    │      1,152 │ block2c_dwconv[0… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_activation  │ (None, 32, 32,    │          0 │ block2c_bn[0][0]  │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_se_squeeze  │ (None, 288)       │          0 │ block2c_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_se_reshape  │ (None, 1, 1, 288) │          0 │ block2c_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_se_reduce   │ (None, 1, 1, 12)  │      3,468 │ block2c_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_se_expand   │ (None, 1, 1, 288) │      3,744 │ block2c_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_se_excite   │ (None, 32, 32,    │          0 │ block2c_activati… │
│ (Multiply)          │ 288)              │            │ block2c_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_project_co… │ (None, 32, 32,    │     13,824 │ block2c_se_excit… │
│ (Conv2D)            │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_project_bn  │ (None, 32, 32,    │        192 │ block2c_project_… │
│ (BatchNormalizatio… │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_drop        │ (None, 32, 32,    │          0 │ block2c_project_… │
│ (Dropout)           │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2c_add (Add)   │ (None, 32, 32,    │          0 │ block2c_drop[0][… │
│                     │ 48)               │            │ block2b_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_expand_conv │ (None, 32, 32,    │     13,824 │ block2c_add[0][0] │
│ (Conv2D)            │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_expand_bn   │ (None, 32, 32,    │      1,152 │ block2d_expand_c… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_expand_act… │ (None, 32, 32,    │          0 │ block2d_expand_b… │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_dwconv      │ (None, 32, 32,    │      2,592 │ block2d_expand_a… │
│ (DepthwiseConv2D)   │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_bn          │ (None, 32, 32,    │      1,152 │ block2d_dwconv[0… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_activation  │ (None, 32, 32,    │          0 │ block2d_bn[0][0]  │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_se_squeeze  │ (None, 288)       │          0 │ block2d_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_se_reshape  │ (None, 1, 1, 288) │          0 │ block2d_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_se_reduce   │ (None, 1, 1, 12)  │      3,468 │ block2d_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_se_expand   │ (None, 1, 1, 288) │      3,744 │ block2d_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_se_excite   │ (None, 32, 32,    │          0 │ block2d_activati… │
│ (Multiply)          │ 288)              │            │ block2d_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_project_co… │ (None, 32, 32,    │     13,824 │ block2d_se_excit… │
│ (Conv2D)            │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_project_bn  │ (None, 32, 32,    │        192 │ block2d_project_… │
│ (BatchNormalizatio… │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_drop        │ (None, 32, 32,    │          0 │ block2d_project_… │
│ (Dropout)           │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2d_add (Add)   │ (None, 32, 32,    │          0 │ block2d_drop[0][… │
│                     │ 48)               │            │ block2c_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_expand_conv │ (None, 32, 32,    │     13,824 │ block2d_add[0][0] │
│ (Conv2D)            │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_expand_bn   │ (None, 32, 32,    │      1,152 │ block2e_expand_c… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_expand_act… │ (None, 32, 32,    │          0 │ block2e_expand_b… │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_dwconv      │ (None, 32, 32,    │      2,592 │ block2e_expand_a… │
│ (DepthwiseConv2D)   │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_bn          │ (None, 32, 32,    │      1,152 │ block2e_dwconv[0… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_activation  │ (None, 32, 32,    │          0 │ block2e_bn[0][0]  │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_se_squeeze  │ (None, 288)       │          0 │ block2e_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_se_reshape  │ (None, 1, 1, 288) │          0 │ block2e_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_se_reduce   │ (None, 1, 1, 12)  │      3,468 │ block2e_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_se_expand   │ (None, 1, 1, 288) │      3,744 │ block2e_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_se_excite   │ (None, 32, 32,    │          0 │ block2e_activati… │
│ (Multiply)          │ 288)              │            │ block2e_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_project_co… │ (None, 32, 32,    │     13,824 │ block2e_se_excit… │
│ (Conv2D)            │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_project_bn  │ (None, 32, 32,    │        192 │ block2e_project_… │
│ (BatchNormalizatio… │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_drop        │ (None, 32, 32,    │          0 │ block2e_project_… │
│ (Dropout)           │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2e_add (Add)   │ (None, 32, 32,    │          0 │ block2e_drop[0][… │
│                     │ 48)               │            │ block2d_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_expand_conv │ (None, 32, 32,    │     13,824 │ block2e_add[0][0] │
│ (Conv2D)            │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_expand_bn   │ (None, 32, 32,    │      1,152 │ block2f_expand_c… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_expand_act… │ (None, 32, 32,    │          0 │ block2f_expand_b… │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_dwconv      │ (None, 32, 32,    │      2,592 │ block2f_expand_a… │
│ (DepthwiseConv2D)   │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_bn          │ (None, 32, 32,    │      1,152 │ block2f_dwconv[0… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_activation  │ (None, 32, 32,    │          0 │ block2f_bn[0][0]  │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_se_squeeze  │ (None, 288)       │          0 │ block2f_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_se_reshape  │ (None, 1, 1, 288) │          0 │ block2f_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_se_reduce   │ (None, 1, 1, 12)  │      3,468 │ block2f_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_se_expand   │ (None, 1, 1, 288) │      3,744 │ block2f_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_se_excite   │ (None, 32, 32,    │          0 │ block2f_activati… │
│ (Multiply)          │ 288)              │            │ block2f_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_project_co… │ (None, 32, 32,    │     13,824 │ block2f_se_excit… │
│ (Conv2D)            │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_project_bn  │ (None, 32, 32,    │        192 │ block2f_project_… │
│ (BatchNormalizatio… │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_drop        │ (None, 32, 32,    │          0 │ block2f_project_… │
│ (Dropout)           │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2f_add (Add)   │ (None, 32, 32,    │          0 │ block2f_drop[0][… │
│                     │ 48)               │            │ block2e_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_expand_conv │ (None, 32, 32,    │     13,824 │ block2f_add[0][0] │
│ (Conv2D)            │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_expand_bn   │ (None, 32, 32,    │      1,152 │ block2g_expand_c… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_expand_act… │ (None, 32, 32,    │          0 │ block2g_expand_b… │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_dwconv      │ (None, 32, 32,    │      2,592 │ block2g_expand_a… │
│ (DepthwiseConv2D)   │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_bn          │ (None, 32, 32,    │      1,152 │ block2g_dwconv[0… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_activation  │ (None, 32, 32,    │          0 │ block2g_bn[0][0]  │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_se_squeeze  │ (None, 288)       │          0 │ block2g_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_se_reshape  │ (None, 1, 1, 288) │          0 │ block2g_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_se_reduce   │ (None, 1, 1, 12)  │      3,468 │ block2g_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_se_expand   │ (None, 1, 1, 288) │      3,744 │ block2g_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_se_excite   │ (None, 32, 32,    │          0 │ block2g_activati… │
│ (Multiply)          │ 288)              │            │ block2g_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_project_co… │ (None, 32, 32,    │     13,824 │ block2g_se_excit… │
│ (Conv2D)            │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_project_bn  │ (None, 32, 32,    │        192 │ block2g_project_… │
│ (BatchNormalizatio… │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_drop        │ (None, 32, 32,    │          0 │ block2g_project_… │
│ (Dropout)           │ 48)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block2g_add (Add)   │ (None, 32, 32,    │          0 │ block2g_drop[0][… │
│                     │ 48)               │            │ block2f_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_expand_conv │ (None, 32, 32,    │     13,824 │ block2g_add[0][0] │
│ (Conv2D)            │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_expand_bn   │ (None, 32, 32,    │      1,152 │ block3a_expand_c… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_expand_act… │ (None, 32, 32,    │          0 │ block3a_expand_b… │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_dwconv_pad  │ (None, 35, 35,    │          0 │ block3a_expand_a… │
│ (ZeroPadding2D)     │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_dwconv      │ (None, 16, 16,    │      7,200 │ block3a_dwconv_p… │
│ (DepthwiseConv2D)   │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_bn          │ (None, 16, 16,    │      1,152 │ block3a_dwconv[0… │
│ (BatchNormalizatio… │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_activation  │ (None, 16, 16,    │          0 │ block3a_bn[0][0]  │
│ (Activation)        │ 288)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_se_squeeze  │ (None, 288)       │          0 │ block3a_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_se_reshape  │ (None, 1, 1, 288) │          0 │ block3a_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_se_reduce   │ (None, 1, 1, 12)  │      3,468 │ block3a_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_se_expand   │ (None, 1, 1, 288) │      3,744 │ block3a_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_se_excite   │ (None, 16, 16,    │          0 │ block3a_activati… │
│ (Multiply)          │ 288)              │            │ block3a_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_project_co… │ (None, 16, 16,    │     23,040 │ block3a_se_excit… │
│ (Conv2D)            │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3a_project_bn  │ (None, 16, 16,    │        320 │ block3a_project_… │
│ (BatchNormalizatio… │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_expand_conv │ (None, 16, 16,    │     38,400 │ block3a_project_… │
│ (Conv2D)            │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_expand_bn   │ (None, 16, 16,    │      1,920 │ block3b_expand_c… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_expand_act… │ (None, 16, 16,    │          0 │ block3b_expand_b… │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_dwconv      │ (None, 16, 16,    │     12,000 │ block3b_expand_a… │
│ (DepthwiseConv2D)   │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_bn          │ (None, 16, 16,    │      1,920 │ block3b_dwconv[0… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_activation  │ (None, 16, 16,    │          0 │ block3b_bn[0][0]  │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_se_squeeze  │ (None, 480)       │          0 │ block3b_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_se_reshape  │ (None, 1, 1, 480) │          0 │ block3b_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_se_reduce   │ (None, 1, 1, 20)  │      9,620 │ block3b_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_se_expand   │ (None, 1, 1, 480) │     10,080 │ block3b_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_se_excite   │ (None, 16, 16,    │          0 │ block3b_activati… │
│ (Multiply)          │ 480)              │            │ block3b_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_project_co… │ (None, 16, 16,    │     38,400 │ block3b_se_excit… │
│ (Conv2D)            │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_project_bn  │ (None, 16, 16,    │        320 │ block3b_project_… │
│ (BatchNormalizatio… │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_drop        │ (None, 16, 16,    │          0 │ block3b_project_… │
│ (Dropout)           │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3b_add (Add)   │ (None, 16, 16,    │          0 │ block3b_drop[0][… │
│                     │ 80)               │            │ block3a_project_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_expand_conv │ (None, 16, 16,    │     38,400 │ block3b_add[0][0] │
│ (Conv2D)            │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_expand_bn   │ (None, 16, 16,    │      1,920 │ block3c_expand_c… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_expand_act… │ (None, 16, 16,    │          0 │ block3c_expand_b… │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_dwconv      │ (None, 16, 16,    │     12,000 │ block3c_expand_a… │
│ (DepthwiseConv2D)   │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_bn          │ (None, 16, 16,    │      1,920 │ block3c_dwconv[0… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_activation  │ (None, 16, 16,    │          0 │ block3c_bn[0][0]  │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_se_squeeze  │ (None, 480)       │          0 │ block3c_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_se_reshape  │ (None, 1, 1, 480) │          0 │ block3c_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_se_reduce   │ (None, 1, 1, 20)  │      9,620 │ block3c_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_se_expand   │ (None, 1, 1, 480) │     10,080 │ block3c_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_se_excite   │ (None, 16, 16,    │          0 │ block3c_activati… │
│ (Multiply)          │ 480)              │            │ block3c_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_project_co… │ (None, 16, 16,    │     38,400 │ block3c_se_excit… │
│ (Conv2D)            │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_project_bn  │ (None, 16, 16,    │        320 │ block3c_project_… │
│ (BatchNormalizatio… │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_drop        │ (None, 16, 16,    │          0 │ block3c_project_… │
│ (Dropout)           │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3c_add (Add)   │ (None, 16, 16,    │          0 │ block3c_drop[0][… │
│                     │ 80)               │            │ block3b_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_expand_conv │ (None, 16, 16,    │     38,400 │ block3c_add[0][0] │
│ (Conv2D)            │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_expand_bn   │ (None, 16, 16,    │      1,920 │ block3d_expand_c… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_expand_act… │ (None, 16, 16,    │          0 │ block3d_expand_b… │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_dwconv      │ (None, 16, 16,    │     12,000 │ block3d_expand_a… │
│ (DepthwiseConv2D)   │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_bn          │ (None, 16, 16,    │      1,920 │ block3d_dwconv[0… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_activation  │ (None, 16, 16,    │          0 │ block3d_bn[0][0]  │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_se_squeeze  │ (None, 480)       │          0 │ block3d_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_se_reshape  │ (None, 1, 1, 480) │          0 │ block3d_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_se_reduce   │ (None, 1, 1, 20)  │      9,620 │ block3d_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_se_expand   │ (None, 1, 1, 480) │     10,080 │ block3d_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_se_excite   │ (None, 16, 16,    │          0 │ block3d_activati… │
│ (Multiply)          │ 480)              │            │ block3d_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_project_co… │ (None, 16, 16,    │     38,400 │ block3d_se_excit… │
│ (Conv2D)            │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_project_bn  │ (None, 16, 16,    │        320 │ block3d_project_… │
│ (BatchNormalizatio… │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_drop        │ (None, 16, 16,    │          0 │ block3d_project_… │
│ (Dropout)           │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3d_add (Add)   │ (None, 16, 16,    │          0 │ block3d_drop[0][… │
│                     │ 80)               │            │ block3c_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_expand_conv │ (None, 16, 16,    │     38,400 │ block3d_add[0][0] │
│ (Conv2D)            │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_expand_bn   │ (None, 16, 16,    │      1,920 │ block3e_expand_c… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_expand_act… │ (None, 16, 16,    │          0 │ block3e_expand_b… │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_dwconv      │ (None, 16, 16,    │     12,000 │ block3e_expand_a… │
│ (DepthwiseConv2D)   │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_bn          │ (None, 16, 16,    │      1,920 │ block3e_dwconv[0… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_activation  │ (None, 16, 16,    │          0 │ block3e_bn[0][0]  │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_se_squeeze  │ (None, 480)       │          0 │ block3e_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_se_reshape  │ (None, 1, 1, 480) │          0 │ block3e_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_se_reduce   │ (None, 1, 1, 20)  │      9,620 │ block3e_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_se_expand   │ (None, 1, 1, 480) │     10,080 │ block3e_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_se_excite   │ (None, 16, 16,    │          0 │ block3e_activati… │
│ (Multiply)          │ 480)              │            │ block3e_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_project_co… │ (None, 16, 16,    │     38,400 │ block3e_se_excit… │
│ (Conv2D)            │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_project_bn  │ (None, 16, 16,    │        320 │ block3e_project_… │
│ (BatchNormalizatio… │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_drop        │ (None, 16, 16,    │          0 │ block3e_project_… │
│ (Dropout)           │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3e_add (Add)   │ (None, 16, 16,    │          0 │ block3e_drop[0][… │
│                     │ 80)               │            │ block3d_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_expand_conv │ (None, 16, 16,    │     38,400 │ block3e_add[0][0] │
│ (Conv2D)            │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_expand_bn   │ (None, 16, 16,    │      1,920 │ block3f_expand_c… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_expand_act… │ (None, 16, 16,    │          0 │ block3f_expand_b… │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_dwconv      │ (None, 16, 16,    │     12,000 │ block3f_expand_a… │
│ (DepthwiseConv2D)   │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_bn          │ (None, 16, 16,    │      1,920 │ block3f_dwconv[0… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_activation  │ (None, 16, 16,    │          0 │ block3f_bn[0][0]  │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_se_squeeze  │ (None, 480)       │          0 │ block3f_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_se_reshape  │ (None, 1, 1, 480) │          0 │ block3f_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_se_reduce   │ (None, 1, 1, 20)  │      9,620 │ block3f_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_se_expand   │ (None, 1, 1, 480) │     10,080 │ block3f_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_se_excite   │ (None, 16, 16,    │          0 │ block3f_activati… │
│ (Multiply)          │ 480)              │            │ block3f_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_project_co… │ (None, 16, 16,    │     38,400 │ block3f_se_excit… │
│ (Conv2D)            │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_project_bn  │ (None, 16, 16,    │        320 │ block3f_project_… │
│ (BatchNormalizatio… │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_drop        │ (None, 16, 16,    │          0 │ block3f_project_… │
│ (Dropout)           │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3f_add (Add)   │ (None, 16, 16,    │          0 │ block3f_drop[0][… │
│                     │ 80)               │            │ block3e_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_expand_conv │ (None, 16, 16,    │     38,400 │ block3f_add[0][0] │
│ (Conv2D)            │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_expand_bn   │ (None, 16, 16,    │      1,920 │ block3g_expand_c… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_expand_act… │ (None, 16, 16,    │          0 │ block3g_expand_b… │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_dwconv      │ (None, 16, 16,    │     12,000 │ block3g_expand_a… │
│ (DepthwiseConv2D)   │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_bn          │ (None, 16, 16,    │      1,920 │ block3g_dwconv[0… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_activation  │ (None, 16, 16,    │          0 │ block3g_bn[0][0]  │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_se_squeeze  │ (None, 480)       │          0 │ block3g_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_se_reshape  │ (None, 1, 1, 480) │          0 │ block3g_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_se_reduce   │ (None, 1, 1, 20)  │      9,620 │ block3g_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_se_expand   │ (None, 1, 1, 480) │     10,080 │ block3g_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_se_excite   │ (None, 16, 16,    │          0 │ block3g_activati… │
│ (Multiply)          │ 480)              │            │ block3g_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_project_co… │ (None, 16, 16,    │     38,400 │ block3g_se_excit… │
│ (Conv2D)            │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_project_bn  │ (None, 16, 16,    │        320 │ block3g_project_… │
│ (BatchNormalizatio… │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_drop        │ (None, 16, 16,    │          0 │ block3g_project_… │
│ (Dropout)           │ 80)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block3g_add (Add)   │ (None, 16, 16,    │          0 │ block3g_drop[0][… │
│                     │ 80)               │            │ block3f_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_expand_conv │ (None, 16, 16,    │     38,400 │ block3g_add[0][0] │
│ (Conv2D)            │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_expand_bn   │ (None, 16, 16,    │      1,920 │ block4a_expand_c… │
│ (BatchNormalizatio… │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_expand_act… │ (None, 16, 16,    │          0 │ block4a_expand_b… │
│ (Activation)        │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_dwconv_pad  │ (None, 17, 17,    │          0 │ block4a_expand_a… │
│ (ZeroPadding2D)     │ 480)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_dwconv      │ (None, 8, 8, 480) │      4,320 │ block4a_dwconv_p… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_bn          │ (None, 8, 8, 480) │      1,920 │ block4a_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_activation  │ (None, 8, 8, 480) │          0 │ block4a_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_se_squeeze  │ (None, 480)       │          0 │ block4a_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_se_reshape  │ (None, 1, 1, 480) │          0 │ block4a_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_se_reduce   │ (None, 1, 1, 20)  │      9,620 │ block4a_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_se_expand   │ (None, 1, 1, 480) │     10,080 │ block4a_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_se_excite   │ (None, 8, 8, 480) │          0 │ block4a_activati… │
│ (Multiply)          │                   │            │ block4a_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_project_co… │ (None, 8, 8, 160) │     76,800 │ block4a_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4a_project_bn  │ (None, 8, 8, 160) │        640 │ block4a_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4a_project_… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4b_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_expand_act… │ (None, 8, 8, 960) │          0 │ block4b_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4b_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_bn          │ (None, 8, 8, 960) │      3,840 │ block4b_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_activation  │ (None, 8, 8, 960) │          0 │ block4b_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_se_squeeze  │ (None, 960)       │          0 │ block4b_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_se_reshape  │ (None, 1, 1, 960) │          0 │ block4b_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4b_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4b_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_se_excite   │ (None, 8, 8, 960) │          0 │ block4b_activati… │
│ (Multiply)          │                   │            │ block4b_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_project_co… │ (None, 8, 8, 160) │    153,600 │ block4b_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_project_bn  │ (None, 8, 8, 160) │        640 │ block4b_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_drop        │ (None, 8, 8, 160) │          0 │ block4b_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4b_add (Add)   │ (None, 8, 8, 160) │          0 │ block4b_drop[0][… │
│                     │                   │            │ block4a_project_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4b_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4c_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_expand_act… │ (None, 8, 8, 960) │          0 │ block4c_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4c_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_bn          │ (None, 8, 8, 960) │      3,840 │ block4c_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_activation  │ (None, 8, 8, 960) │          0 │ block4c_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_se_squeeze  │ (None, 960)       │          0 │ block4c_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_se_reshape  │ (None, 1, 1, 960) │          0 │ block4c_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4c_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4c_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_se_excite   │ (None, 8, 8, 960) │          0 │ block4c_activati… │
│ (Multiply)          │                   │            │ block4c_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_project_co… │ (None, 8, 8, 160) │    153,600 │ block4c_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_project_bn  │ (None, 8, 8, 160) │        640 │ block4c_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_drop        │ (None, 8, 8, 160) │          0 │ block4c_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4c_add (Add)   │ (None, 8, 8, 160) │          0 │ block4c_drop[0][… │
│                     │                   │            │ block4b_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4c_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4d_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_expand_act… │ (None, 8, 8, 960) │          0 │ block4d_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4d_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_bn          │ (None, 8, 8, 960) │      3,840 │ block4d_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_activation  │ (None, 8, 8, 960) │          0 │ block4d_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_se_squeeze  │ (None, 960)       │          0 │ block4d_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_se_reshape  │ (None, 1, 1, 960) │          0 │ block4d_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4d_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4d_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_se_excite   │ (None, 8, 8, 960) │          0 │ block4d_activati… │
│ (Multiply)          │                   │            │ block4d_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_project_co… │ (None, 8, 8, 160) │    153,600 │ block4d_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_project_bn  │ (None, 8, 8, 160) │        640 │ block4d_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_drop        │ (None, 8, 8, 160) │          0 │ block4d_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4d_add (Add)   │ (None, 8, 8, 160) │          0 │ block4d_drop[0][… │
│                     │                   │            │ block4c_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4d_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4e_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_expand_act… │ (None, 8, 8, 960) │          0 │ block4e_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4e_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_bn          │ (None, 8, 8, 960) │      3,840 │ block4e_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_activation  │ (None, 8, 8, 960) │          0 │ block4e_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_se_squeeze  │ (None, 960)       │          0 │ block4e_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_se_reshape  │ (None, 1, 1, 960) │          0 │ block4e_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4e_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4e_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_se_excite   │ (None, 8, 8, 960) │          0 │ block4e_activati… │
│ (Multiply)          │                   │            │ block4e_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_project_co… │ (None, 8, 8, 160) │    153,600 │ block4e_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_project_bn  │ (None, 8, 8, 160) │        640 │ block4e_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_drop        │ (None, 8, 8, 160) │          0 │ block4e_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4e_add (Add)   │ (None, 8, 8, 160) │          0 │ block4e_drop[0][… │
│                     │                   │            │ block4d_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4e_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4f_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_expand_act… │ (None, 8, 8, 960) │          0 │ block4f_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4f_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_bn          │ (None, 8, 8, 960) │      3,840 │ block4f_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_activation  │ (None, 8, 8, 960) │          0 │ block4f_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_se_squeeze  │ (None, 960)       │          0 │ block4f_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_se_reshape  │ (None, 1, 1, 960) │          0 │ block4f_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4f_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4f_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_se_excite   │ (None, 8, 8, 960) │          0 │ block4f_activati… │
│ (Multiply)          │                   │            │ block4f_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_project_co… │ (None, 8, 8, 160) │    153,600 │ block4f_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_project_bn  │ (None, 8, 8, 160) │        640 │ block4f_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_drop        │ (None, 8, 8, 160) │          0 │ block4f_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4f_add (Add)   │ (None, 8, 8, 160) │          0 │ block4f_drop[0][… │
│                     │                   │            │ block4e_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4f_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4g_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_expand_act… │ (None, 8, 8, 960) │          0 │ block4g_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4g_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_bn          │ (None, 8, 8, 960) │      3,840 │ block4g_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_activation  │ (None, 8, 8, 960) │          0 │ block4g_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_se_squeeze  │ (None, 960)       │          0 │ block4g_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_se_reshape  │ (None, 1, 1, 960) │          0 │ block4g_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4g_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4g_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_se_excite   │ (None, 8, 8, 960) │          0 │ block4g_activati… │
│ (Multiply)          │                   │            │ block4g_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_project_co… │ (None, 8, 8, 160) │    153,600 │ block4g_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_project_bn  │ (None, 8, 8, 160) │        640 │ block4g_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_drop        │ (None, 8, 8, 160) │          0 │ block4g_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4g_add (Add)   │ (None, 8, 8, 160) │          0 │ block4g_drop[0][… │
│                     │                   │            │ block4f_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4g_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4h_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_expand_act… │ (None, 8, 8, 960) │          0 │ block4h_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4h_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_bn          │ (None, 8, 8, 960) │      3,840 │ block4h_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_activation  │ (None, 8, 8, 960) │          0 │ block4h_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_se_squeeze  │ (None, 960)       │          0 │ block4h_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_se_reshape  │ (None, 1, 1, 960) │          0 │ block4h_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4h_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4h_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_se_excite   │ (None, 8, 8, 960) │          0 │ block4h_activati… │
│ (Multiply)          │                   │            │ block4h_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_project_co… │ (None, 8, 8, 160) │    153,600 │ block4h_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_project_bn  │ (None, 8, 8, 160) │        640 │ block4h_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_drop        │ (None, 8, 8, 160) │          0 │ block4h_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4h_add (Add)   │ (None, 8, 8, 160) │          0 │ block4h_drop[0][… │
│                     │                   │            │ block4g_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4h_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4i_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_expand_act… │ (None, 8, 8, 960) │          0 │ block4i_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4i_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_bn          │ (None, 8, 8, 960) │      3,840 │ block4i_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_activation  │ (None, 8, 8, 960) │          0 │ block4i_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_se_squeeze  │ (None, 960)       │          0 │ block4i_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_se_reshape  │ (None, 1, 1, 960) │          0 │ block4i_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4i_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4i_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_se_excite   │ (None, 8, 8, 960) │          0 │ block4i_activati… │
│ (Multiply)          │                   │            │ block4i_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_project_co… │ (None, 8, 8, 160) │    153,600 │ block4i_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_project_bn  │ (None, 8, 8, 160) │        640 │ block4i_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_drop        │ (None, 8, 8, 160) │          0 │ block4i_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4i_add (Add)   │ (None, 8, 8, 160) │          0 │ block4i_drop[0][… │
│                     │                   │            │ block4h_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4i_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block4j_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_expand_act… │ (None, 8, 8, 960) │          0 │ block4j_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_dwconv      │ (None, 8, 8, 960) │      8,640 │ block4j_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_bn          │ (None, 8, 8, 960) │      3,840 │ block4j_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_activation  │ (None, 8, 8, 960) │          0 │ block4j_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_se_squeeze  │ (None, 960)       │          0 │ block4j_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_se_reshape  │ (None, 1, 1, 960) │          0 │ block4j_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block4j_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_se_expand   │ (None, 1, 1, 960) │     39,360 │ block4j_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_se_excite   │ (None, 8, 8, 960) │          0 │ block4j_activati… │
│ (Multiply)          │                   │            │ block4j_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_project_co… │ (None, 8, 8, 160) │    153,600 │ block4j_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_project_bn  │ (None, 8, 8, 160) │        640 │ block4j_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_drop        │ (None, 8, 8, 160) │          0 │ block4j_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block4j_add (Add)   │ (None, 8, 8, 160) │          0 │ block4j_drop[0][… │
│                     │                   │            │ block4i_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_expand_conv │ (None, 8, 8, 960) │    153,600 │ block4j_add[0][0] │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_expand_bn   │ (None, 8, 8, 960) │      3,840 │ block5a_expand_c… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_expand_act… │ (None, 8, 8, 960) │          0 │ block5a_expand_b… │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_dwconv      │ (None, 8, 8, 960) │     24,000 │ block5a_expand_a… │
│ (DepthwiseConv2D)   │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_bn          │ (None, 8, 8, 960) │      3,840 │ block5a_dwconv[0… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_activation  │ (None, 8, 8, 960) │          0 │ block5a_bn[0][0]  │
│ (Activation)        │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_se_squeeze  │ (None, 960)       │          0 │ block5a_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_se_reshape  │ (None, 1, 1, 960) │          0 │ block5a_se_squee… │
│ (Reshape)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_se_reduce   │ (None, 1, 1, 40)  │     38,440 │ block5a_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_se_expand   │ (None, 1, 1, 960) │     39,360 │ block5a_se_reduc… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_se_excite   │ (None, 8, 8, 960) │          0 │ block5a_activati… │
│ (Multiply)          │                   │            │ block5a_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_project_co… │ (None, 8, 8, 224) │    215,040 │ block5a_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5a_project_bn  │ (None, 8, 8, 224) │        896 │ block5a_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_expand_conv │ (None, 8, 8,      │    301,056 │ block5a_project_… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_expand_bn   │ (None, 8, 8,      │      5,376 │ block5b_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_expand_act… │ (None, 8, 8,      │          0 │ block5b_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_dwconv      │ (None, 8, 8,      │     33,600 │ block5b_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_bn          │ (None, 8, 8,      │      5,376 │ block5b_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_activation  │ (None, 8, 8,      │          0 │ block5b_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_se_squeeze  │ (None, 1344)      │          0 │ block5b_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_se_reshape  │ (None, 1, 1,      │          0 │ block5b_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5b_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_se_expand   │ (None, 1, 1,      │     76,608 │ block5b_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_se_excite   │ (None, 8, 8,      │          0 │ block5b_activati… │
│ (Multiply)          │ 1344)             │            │ block5b_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_project_co… │ (None, 8, 8, 224) │    301,056 │ block5b_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_project_bn  │ (None, 8, 8, 224) │        896 │ block5b_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_drop        │ (None, 8, 8, 224) │          0 │ block5b_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5b_add (Add)   │ (None, 8, 8, 224) │          0 │ block5b_drop[0][… │
│                     │                   │            │ block5a_project_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_expand_conv │ (None, 8, 8,      │    301,056 │ block5b_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_expand_bn   │ (None, 8, 8,      │      5,376 │ block5c_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_expand_act… │ (None, 8, 8,      │          0 │ block5c_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_dwconv      │ (None, 8, 8,      │     33,600 │ block5c_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_bn          │ (None, 8, 8,      │      5,376 │ block5c_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_activation  │ (None, 8, 8,      │          0 │ block5c_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_se_squeeze  │ (None, 1344)      │          0 │ block5c_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_se_reshape  │ (None, 1, 1,      │          0 │ block5c_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5c_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_se_expand   │ (None, 1, 1,      │     76,608 │ block5c_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_se_excite   │ (None, 8, 8,      │          0 │ block5c_activati… │
│ (Multiply)          │ 1344)             │            │ block5c_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_project_co… │ (None, 8, 8, 224) │    301,056 │ block5c_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_project_bn  │ (None, 8, 8, 224) │        896 │ block5c_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_drop        │ (None, 8, 8, 224) │          0 │ block5c_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5c_add (Add)   │ (None, 8, 8, 224) │          0 │ block5c_drop[0][… │
│                     │                   │            │ block5b_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_expand_conv │ (None, 8, 8,      │    301,056 │ block5c_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_expand_bn   │ (None, 8, 8,      │      5,376 │ block5d_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_expand_act… │ (None, 8, 8,      │          0 │ block5d_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_dwconv      │ (None, 8, 8,      │     33,600 │ block5d_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_bn          │ (None, 8, 8,      │      5,376 │ block5d_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_activation  │ (None, 8, 8,      │          0 │ block5d_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_se_squeeze  │ (None, 1344)      │          0 │ block5d_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_se_reshape  │ (None, 1, 1,      │          0 │ block5d_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5d_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_se_expand   │ (None, 1, 1,      │     76,608 │ block5d_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_se_excite   │ (None, 8, 8,      │          0 │ block5d_activati… │
│ (Multiply)          │ 1344)             │            │ block5d_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_project_co… │ (None, 8, 8, 224) │    301,056 │ block5d_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_project_bn  │ (None, 8, 8, 224) │        896 │ block5d_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_drop        │ (None, 8, 8, 224) │          0 │ block5d_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5d_add (Add)   │ (None, 8, 8, 224) │          0 │ block5d_drop[0][… │
│                     │                   │            │ block5c_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_expand_conv │ (None, 8, 8,      │    301,056 │ block5d_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_expand_bn   │ (None, 8, 8,      │      5,376 │ block5e_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_expand_act… │ (None, 8, 8,      │          0 │ block5e_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_dwconv      │ (None, 8, 8,      │     33,600 │ block5e_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_bn          │ (None, 8, 8,      │      5,376 │ block5e_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_activation  │ (None, 8, 8,      │          0 │ block5e_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_se_squeeze  │ (None, 1344)      │          0 │ block5e_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_se_reshape  │ (None, 1, 1,      │          0 │ block5e_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5e_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_se_expand   │ (None, 1, 1,      │     76,608 │ block5e_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_se_excite   │ (None, 8, 8,      │          0 │ block5e_activati… │
│ (Multiply)          │ 1344)             │            │ block5e_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_project_co… │ (None, 8, 8, 224) │    301,056 │ block5e_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_project_bn  │ (None, 8, 8, 224) │        896 │ block5e_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_drop        │ (None, 8, 8, 224) │          0 │ block5e_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5e_add (Add)   │ (None, 8, 8, 224) │          0 │ block5e_drop[0][… │
│                     │                   │            │ block5d_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_expand_conv │ (None, 8, 8,      │    301,056 │ block5e_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_expand_bn   │ (None, 8, 8,      │      5,376 │ block5f_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_expand_act… │ (None, 8, 8,      │          0 │ block5f_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_dwconv      │ (None, 8, 8,      │     33,600 │ block5f_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_bn          │ (None, 8, 8,      │      5,376 │ block5f_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_activation  │ (None, 8, 8,      │          0 │ block5f_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_se_squeeze  │ (None, 1344)      │          0 │ block5f_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_se_reshape  │ (None, 1, 1,      │          0 │ block5f_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5f_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_se_expand   │ (None, 1, 1,      │     76,608 │ block5f_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_se_excite   │ (None, 8, 8,      │          0 │ block5f_activati… │
│ (Multiply)          │ 1344)             │            │ block5f_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_project_co… │ (None, 8, 8, 224) │    301,056 │ block5f_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_project_bn  │ (None, 8, 8, 224) │        896 │ block5f_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_drop        │ (None, 8, 8, 224) │          0 │ block5f_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5f_add (Add)   │ (None, 8, 8, 224) │          0 │ block5f_drop[0][… │
│                     │                   │            │ block5e_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_expand_conv │ (None, 8, 8,      │    301,056 │ block5f_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_expand_bn   │ (None, 8, 8,      │      5,376 │ block5g_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_expand_act… │ (None, 8, 8,      │          0 │ block5g_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_dwconv      │ (None, 8, 8,      │     33,600 │ block5g_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_bn          │ (None, 8, 8,      │      5,376 │ block5g_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_activation  │ (None, 8, 8,      │          0 │ block5g_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_se_squeeze  │ (None, 1344)      │          0 │ block5g_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_se_reshape  │ (None, 1, 1,      │          0 │ block5g_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5g_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_se_expand   │ (None, 1, 1,      │     76,608 │ block5g_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_se_excite   │ (None, 8, 8,      │          0 │ block5g_activati… │
│ (Multiply)          │ 1344)             │            │ block5g_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_project_co… │ (None, 8, 8, 224) │    301,056 │ block5g_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_project_bn  │ (None, 8, 8, 224) │        896 │ block5g_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_drop        │ (None, 8, 8, 224) │          0 │ block5g_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5g_add (Add)   │ (None, 8, 8, 224) │          0 │ block5g_drop[0][… │
│                     │                   │            │ block5f_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_expand_conv │ (None, 8, 8,      │    301,056 │ block5g_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_expand_bn   │ (None, 8, 8,      │      5,376 │ block5h_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_expand_act… │ (None, 8, 8,      │          0 │ block5h_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_dwconv      │ (None, 8, 8,      │     33,600 │ block5h_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_bn          │ (None, 8, 8,      │      5,376 │ block5h_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_activation  │ (None, 8, 8,      │          0 │ block5h_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_se_squeeze  │ (None, 1344)      │          0 │ block5h_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_se_reshape  │ (None, 1, 1,      │          0 │ block5h_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5h_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_se_expand   │ (None, 1, 1,      │     76,608 │ block5h_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_se_excite   │ (None, 8, 8,      │          0 │ block5h_activati… │
│ (Multiply)          │ 1344)             │            │ block5h_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_project_co… │ (None, 8, 8, 224) │    301,056 │ block5h_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_project_bn  │ (None, 8, 8, 224) │        896 │ block5h_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_drop        │ (None, 8, 8, 224) │          0 │ block5h_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5h_add (Add)   │ (None, 8, 8, 224) │          0 │ block5h_drop[0][… │
│                     │                   │            │ block5g_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_expand_conv │ (None, 8, 8,      │    301,056 │ block5h_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_expand_bn   │ (None, 8, 8,      │      5,376 │ block5i_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_expand_act… │ (None, 8, 8,      │          0 │ block5i_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_dwconv      │ (None, 8, 8,      │     33,600 │ block5i_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_bn          │ (None, 8, 8,      │      5,376 │ block5i_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_activation  │ (None, 8, 8,      │          0 │ block5i_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_se_squeeze  │ (None, 1344)      │          0 │ block5i_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_se_reshape  │ (None, 1, 1,      │          0 │ block5i_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5i_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_se_expand   │ (None, 1, 1,      │     76,608 │ block5i_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_se_excite   │ (None, 8, 8,      │          0 │ block5i_activati… │
│ (Multiply)          │ 1344)             │            │ block5i_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_project_co… │ (None, 8, 8, 224) │    301,056 │ block5i_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_project_bn  │ (None, 8, 8, 224) │        896 │ block5i_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_drop        │ (None, 8, 8, 224) │          0 │ block5i_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5i_add (Add)   │ (None, 8, 8, 224) │          0 │ block5i_drop[0][… │
│                     │                   │            │ block5h_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_expand_conv │ (None, 8, 8,      │    301,056 │ block5i_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_expand_bn   │ (None, 8, 8,      │      5,376 │ block5j_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_expand_act… │ (None, 8, 8,      │          0 │ block5j_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_dwconv      │ (None, 8, 8,      │     33,600 │ block5j_expand_a… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_bn          │ (None, 8, 8,      │      5,376 │ block5j_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_activation  │ (None, 8, 8,      │          0 │ block5j_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_se_squeeze  │ (None, 1344)      │          0 │ block5j_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_se_reshape  │ (None, 1, 1,      │          0 │ block5j_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block5j_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_se_expand   │ (None, 1, 1,      │     76,608 │ block5j_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_se_excite   │ (None, 8, 8,      │          0 │ block5j_activati… │
│ (Multiply)          │ 1344)             │            │ block5j_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_project_co… │ (None, 8, 8, 224) │    301,056 │ block5j_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_project_bn  │ (None, 8, 8, 224) │        896 │ block5j_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_drop        │ (None, 8, 8, 224) │          0 │ block5j_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block5j_add (Add)   │ (None, 8, 8, 224) │          0 │ block5j_drop[0][… │
│                     │                   │            │ block5i_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_expand_conv │ (None, 8, 8,      │    301,056 │ block5j_add[0][0] │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_expand_bn   │ (None, 8, 8,      │      5,376 │ block6a_expand_c… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_expand_act… │ (None, 8, 8,      │          0 │ block6a_expand_b… │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_dwconv_pad  │ (None, 11, 11,    │          0 │ block6a_expand_a… │
│ (ZeroPadding2D)     │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_dwconv      │ (None, 4, 4,      │     33,600 │ block6a_dwconv_p… │
│ (DepthwiseConv2D)   │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_bn          │ (None, 4, 4,      │      5,376 │ block6a_dwconv[0… │
│ (BatchNormalizatio… │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_activation  │ (None, 4, 4,      │          0 │ block6a_bn[0][0]  │
│ (Activation)        │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_se_squeeze  │ (None, 1344)      │          0 │ block6a_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_se_reshape  │ (None, 1, 1,      │          0 │ block6a_se_squee… │
│ (Reshape)           │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_se_reduce   │ (None, 1, 1, 56)  │     75,320 │ block6a_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_se_expand   │ (None, 1, 1,      │     76,608 │ block6a_se_reduc… │
│ (Conv2D)            │ 1344)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_se_excite   │ (None, 4, 4,      │          0 │ block6a_activati… │
│ (Multiply)          │ 1344)             │            │ block6a_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_project_co… │ (None, 4, 4, 384) │    516,096 │ block6a_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6a_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6a_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_expand_conv │ (None, 4, 4,      │    884,736 │ block6a_project_… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_expand_bn   │ (None, 4, 4,      │      9,216 │ block6b_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_expand_act… │ (None, 4, 4,      │          0 │ block6b_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_dwconv      │ (None, 4, 4,      │     57,600 │ block6b_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_bn          │ (None, 4, 4,      │      9,216 │ block6b_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_activation  │ (None, 4, 4,      │          0 │ block6b_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_se_squeeze  │ (None, 2304)      │          0 │ block6b_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_se_reshape  │ (None, 1, 1,      │          0 │ block6b_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6b_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_se_expand   │ (None, 1, 1,      │    223,488 │ block6b_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_se_excite   │ (None, 4, 4,      │          0 │ block6b_activati… │
│ (Multiply)          │ 2304)             │            │ block6b_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_project_co… │ (None, 4, 4, 384) │    884,736 │ block6b_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6b_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_drop        │ (None, 4, 4, 384) │          0 │ block6b_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6b_add (Add)   │ (None, 4, 4, 384) │          0 │ block6b_drop[0][… │
│                     │                   │            │ block6a_project_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_expand_conv │ (None, 4, 4,      │    884,736 │ block6b_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_expand_bn   │ (None, 4, 4,      │      9,216 │ block6c_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_expand_act… │ (None, 4, 4,      │          0 │ block6c_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_dwconv      │ (None, 4, 4,      │     57,600 │ block6c_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_bn          │ (None, 4, 4,      │      9,216 │ block6c_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_activation  │ (None, 4, 4,      │          0 │ block6c_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_se_squeeze  │ (None, 2304)      │          0 │ block6c_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_se_reshape  │ (None, 1, 1,      │          0 │ block6c_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6c_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_se_expand   │ (None, 1, 1,      │    223,488 │ block6c_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_se_excite   │ (None, 4, 4,      │          0 │ block6c_activati… │
│ (Multiply)          │ 2304)             │            │ block6c_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_project_co… │ (None, 4, 4, 384) │    884,736 │ block6c_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6c_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_drop        │ (None, 4, 4, 384) │          0 │ block6c_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6c_add (Add)   │ (None, 4, 4, 384) │          0 │ block6c_drop[0][… │
│                     │                   │            │ block6b_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_expand_conv │ (None, 4, 4,      │    884,736 │ block6c_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_expand_bn   │ (None, 4, 4,      │      9,216 │ block6d_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_expand_act… │ (None, 4, 4,      │          0 │ block6d_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_dwconv      │ (None, 4, 4,      │     57,600 │ block6d_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_bn          │ (None, 4, 4,      │      9,216 │ block6d_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_activation  │ (None, 4, 4,      │          0 │ block6d_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_se_squeeze  │ (None, 2304)      │          0 │ block6d_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_se_reshape  │ (None, 1, 1,      │          0 │ block6d_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6d_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_se_expand   │ (None, 1, 1,      │    223,488 │ block6d_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_se_excite   │ (None, 4, 4,      │          0 │ block6d_activati… │
│ (Multiply)          │ 2304)             │            │ block6d_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_project_co… │ (None, 4, 4, 384) │    884,736 │ block6d_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6d_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_drop        │ (None, 4, 4, 384) │          0 │ block6d_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6d_add (Add)   │ (None, 4, 4, 384) │          0 │ block6d_drop[0][… │
│                     │                   │            │ block6c_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_expand_conv │ (None, 4, 4,      │    884,736 │ block6d_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_expand_bn   │ (None, 4, 4,      │      9,216 │ block6e_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_expand_act… │ (None, 4, 4,      │          0 │ block6e_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_dwconv      │ (None, 4, 4,      │     57,600 │ block6e_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_bn          │ (None, 4, 4,      │      9,216 │ block6e_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_activation  │ (None, 4, 4,      │          0 │ block6e_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_se_squeeze  │ (None, 2304)      │          0 │ block6e_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_se_reshape  │ (None, 1, 1,      │          0 │ block6e_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6e_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_se_expand   │ (None, 1, 1,      │    223,488 │ block6e_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_se_excite   │ (None, 4, 4,      │          0 │ block6e_activati… │
│ (Multiply)          │ 2304)             │            │ block6e_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_project_co… │ (None, 4, 4, 384) │    884,736 │ block6e_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6e_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_drop        │ (None, 4, 4, 384) │          0 │ block6e_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6e_add (Add)   │ (None, 4, 4, 384) │          0 │ block6e_drop[0][… │
│                     │                   │            │ block6d_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_expand_conv │ (None, 4, 4,      │    884,736 │ block6e_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_expand_bn   │ (None, 4, 4,      │      9,216 │ block6f_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_expand_act… │ (None, 4, 4,      │          0 │ block6f_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_dwconv      │ (None, 4, 4,      │     57,600 │ block6f_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_bn          │ (None, 4, 4,      │      9,216 │ block6f_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_activation  │ (None, 4, 4,      │          0 │ block6f_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_se_squeeze  │ (None, 2304)      │          0 │ block6f_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_se_reshape  │ (None, 1, 1,      │          0 │ block6f_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6f_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_se_expand   │ (None, 1, 1,      │    223,488 │ block6f_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_se_excite   │ (None, 4, 4,      │          0 │ block6f_activati… │
│ (Multiply)          │ 2304)             │            │ block6f_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_project_co… │ (None, 4, 4, 384) │    884,736 │ block6f_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6f_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_drop        │ (None, 4, 4, 384) │          0 │ block6f_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6f_add (Add)   │ (None, 4, 4, 384) │          0 │ block6f_drop[0][… │
│                     │                   │            │ block6e_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_expand_conv │ (None, 4, 4,      │    884,736 │ block6f_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_expand_bn   │ (None, 4, 4,      │      9,216 │ block6g_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_expand_act… │ (None, 4, 4,      │          0 │ block6g_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_dwconv      │ (None, 4, 4,      │     57,600 │ block6g_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_bn          │ (None, 4, 4,      │      9,216 │ block6g_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_activation  │ (None, 4, 4,      │          0 │ block6g_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_se_squeeze  │ (None, 2304)      │          0 │ block6g_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_se_reshape  │ (None, 1, 1,      │          0 │ block6g_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6g_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_se_expand   │ (None, 1, 1,      │    223,488 │ block6g_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_se_excite   │ (None, 4, 4,      │          0 │ block6g_activati… │
│ (Multiply)          │ 2304)             │            │ block6g_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_project_co… │ (None, 4, 4, 384) │    884,736 │ block6g_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6g_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_drop        │ (None, 4, 4, 384) │          0 │ block6g_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6g_add (Add)   │ (None, 4, 4, 384) │          0 │ block6g_drop[0][… │
│                     │                   │            │ block6f_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_expand_conv │ (None, 4, 4,      │    884,736 │ block6g_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_expand_bn   │ (None, 4, 4,      │      9,216 │ block6h_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_expand_act… │ (None, 4, 4,      │          0 │ block6h_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_dwconv      │ (None, 4, 4,      │     57,600 │ block6h_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_bn          │ (None, 4, 4,      │      9,216 │ block6h_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_activation  │ (None, 4, 4,      │          0 │ block6h_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_se_squeeze  │ (None, 2304)      │          0 │ block6h_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_se_reshape  │ (None, 1, 1,      │          0 │ block6h_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6h_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_se_expand   │ (None, 1, 1,      │    223,488 │ block6h_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_se_excite   │ (None, 4, 4,      │          0 │ block6h_activati… │
│ (Multiply)          │ 2304)             │            │ block6h_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_project_co… │ (None, 4, 4, 384) │    884,736 │ block6h_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6h_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_drop        │ (None, 4, 4, 384) │          0 │ block6h_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6h_add (Add)   │ (None, 4, 4, 384) │          0 │ block6h_drop[0][… │
│                     │                   │            │ block6g_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_expand_conv │ (None, 4, 4,      │    884,736 │ block6h_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_expand_bn   │ (None, 4, 4,      │      9,216 │ block6i_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_expand_act… │ (None, 4, 4,      │          0 │ block6i_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_dwconv      │ (None, 4, 4,      │     57,600 │ block6i_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_bn          │ (None, 4, 4,      │      9,216 │ block6i_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_activation  │ (None, 4, 4,      │          0 │ block6i_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_se_squeeze  │ (None, 2304)      │          0 │ block6i_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_se_reshape  │ (None, 1, 1,      │          0 │ block6i_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6i_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_se_expand   │ (None, 1, 1,      │    223,488 │ block6i_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_se_excite   │ (None, 4, 4,      │          0 │ block6i_activati… │
│ (Multiply)          │ 2304)             │            │ block6i_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_project_co… │ (None, 4, 4, 384) │    884,736 │ block6i_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6i_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_drop        │ (None, 4, 4, 384) │          0 │ block6i_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6i_add (Add)   │ (None, 4, 4, 384) │          0 │ block6i_drop[0][… │
│                     │                   │            │ block6h_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_expand_conv │ (None, 4, 4,      │    884,736 │ block6i_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_expand_bn   │ (None, 4, 4,      │      9,216 │ block6j_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_expand_act… │ (None, 4, 4,      │          0 │ block6j_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_dwconv      │ (None, 4, 4,      │     57,600 │ block6j_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_bn          │ (None, 4, 4,      │      9,216 │ block6j_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_activation  │ (None, 4, 4,      │          0 │ block6j_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_se_squeeze  │ (None, 2304)      │          0 │ block6j_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_se_reshape  │ (None, 1, 1,      │          0 │ block6j_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6j_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_se_expand   │ (None, 1, 1,      │    223,488 │ block6j_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_se_excite   │ (None, 4, 4,      │          0 │ block6j_activati… │
│ (Multiply)          │ 2304)             │            │ block6j_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_project_co… │ (None, 4, 4, 384) │    884,736 │ block6j_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6j_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_drop        │ (None, 4, 4, 384) │          0 │ block6j_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6j_add (Add)   │ (None, 4, 4, 384) │          0 │ block6j_drop[0][… │
│                     │                   │            │ block6i_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_expand_conv │ (None, 4, 4,      │    884,736 │ block6j_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_expand_bn   │ (None, 4, 4,      │      9,216 │ block6k_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_expand_act… │ (None, 4, 4,      │          0 │ block6k_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_dwconv      │ (None, 4, 4,      │     57,600 │ block6k_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_bn          │ (None, 4, 4,      │      9,216 │ block6k_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_activation  │ (None, 4, 4,      │          0 │ block6k_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_se_squeeze  │ (None, 2304)      │          0 │ block6k_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_se_reshape  │ (None, 1, 1,      │          0 │ block6k_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6k_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_se_expand   │ (None, 1, 1,      │    223,488 │ block6k_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_se_excite   │ (None, 4, 4,      │          0 │ block6k_activati… │
│ (Multiply)          │ 2304)             │            │ block6k_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_project_co… │ (None, 4, 4, 384) │    884,736 │ block6k_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6k_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_drop        │ (None, 4, 4, 384) │          0 │ block6k_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6k_add (Add)   │ (None, 4, 4, 384) │          0 │ block6k_drop[0][… │
│                     │                   │            │ block6j_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_expand_conv │ (None, 4, 4,      │    884,736 │ block6k_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_expand_bn   │ (None, 4, 4,      │      9,216 │ block6l_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_expand_act… │ (None, 4, 4,      │          0 │ block6l_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_dwconv      │ (None, 4, 4,      │     57,600 │ block6l_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_bn          │ (None, 4, 4,      │      9,216 │ block6l_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_activation  │ (None, 4, 4,      │          0 │ block6l_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_se_squeeze  │ (None, 2304)      │          0 │ block6l_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_se_reshape  │ (None, 1, 1,      │          0 │ block6l_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6l_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_se_expand   │ (None, 1, 1,      │    223,488 │ block6l_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_se_excite   │ (None, 4, 4,      │          0 │ block6l_activati… │
│ (Multiply)          │ 2304)             │            │ block6l_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_project_co… │ (None, 4, 4, 384) │    884,736 │ block6l_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6l_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_drop        │ (None, 4, 4, 384) │          0 │ block6l_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6l_add (Add)   │ (None, 4, 4, 384) │          0 │ block6l_drop[0][… │
│                     │                   │            │ block6k_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_expand_conv │ (None, 4, 4,      │    884,736 │ block6l_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_expand_bn   │ (None, 4, 4,      │      9,216 │ block6m_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_expand_act… │ (None, 4, 4,      │          0 │ block6m_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_dwconv      │ (None, 4, 4,      │     57,600 │ block6m_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_bn          │ (None, 4, 4,      │      9,216 │ block6m_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_activation  │ (None, 4, 4,      │          0 │ block6m_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_se_squeeze  │ (None, 2304)      │          0 │ block6m_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_se_reshape  │ (None, 1, 1,      │          0 │ block6m_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block6m_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_se_expand   │ (None, 1, 1,      │    223,488 │ block6m_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_se_excite   │ (None, 4, 4,      │          0 │ block6m_activati… │
│ (Multiply)          │ 2304)             │            │ block6m_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_project_co… │ (None, 4, 4, 384) │    884,736 │ block6m_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_project_bn  │ (None, 4, 4, 384) │      1,536 │ block6m_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_drop        │ (None, 4, 4, 384) │          0 │ block6m_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block6m_add (Add)   │ (None, 4, 4, 384) │          0 │ block6m_drop[0][… │
│                     │                   │            │ block6l_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_expand_conv │ (None, 4, 4,      │    884,736 │ block6m_add[0][0] │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_expand_bn   │ (None, 4, 4,      │      9,216 │ block7a_expand_c… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_expand_act… │ (None, 4, 4,      │          0 │ block7a_expand_b… │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_dwconv      │ (None, 4, 4,      │     20,736 │ block7a_expand_a… │
│ (DepthwiseConv2D)   │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_bn          │ (None, 4, 4,      │      9,216 │ block7a_dwconv[0… │
│ (BatchNormalizatio… │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_activation  │ (None, 4, 4,      │          0 │ block7a_bn[0][0]  │
│ (Activation)        │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_se_squeeze  │ (None, 2304)      │          0 │ block7a_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_se_reshape  │ (None, 1, 1,      │          0 │ block7a_se_squee… │
│ (Reshape)           │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_se_reduce   │ (None, 1, 1, 96)  │    221,280 │ block7a_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_se_expand   │ (None, 1, 1,      │    223,488 │ block7a_se_reduc… │
│ (Conv2D)            │ 2304)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_se_excite   │ (None, 4, 4,      │          0 │ block7a_activati… │
│ (Multiply)          │ 2304)             │            │ block7a_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_project_co… │ (None, 4, 4, 640) │  1,474,560 │ block7a_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7a_project_bn  │ (None, 4, 4, 640) │      2,560 │ block7a_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_expand_conv │ (None, 4, 4,      │  2,457,600 │ block7a_project_… │
│ (Conv2D)            │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_expand_bn   │ (None, 4, 4,      │     15,360 │ block7b_expand_c… │
│ (BatchNormalizatio… │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_expand_act… │ (None, 4, 4,      │          0 │ block7b_expand_b… │
│ (Activation)        │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_dwconv      │ (None, 4, 4,      │     34,560 │ block7b_expand_a… │
│ (DepthwiseConv2D)   │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_bn          │ (None, 4, 4,      │     15,360 │ block7b_dwconv[0… │
│ (BatchNormalizatio… │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_activation  │ (None, 4, 4,      │          0 │ block7b_bn[0][0]  │
│ (Activation)        │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_se_squeeze  │ (None, 3840)      │          0 │ block7b_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_se_reshape  │ (None, 1, 1,      │          0 │ block7b_se_squee… │
│ (Reshape)           │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_se_reduce   │ (None, 1, 1, 160) │    614,560 │ block7b_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_se_expand   │ (None, 1, 1,      │    618,240 │ block7b_se_reduc… │
│ (Conv2D)            │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_se_excite   │ (None, 4, 4,      │          0 │ block7b_activati… │
│ (Multiply)          │ 3840)             │            │ block7b_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_project_co… │ (None, 4, 4, 640) │  2,457,600 │ block7b_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_project_bn  │ (None, 4, 4, 640) │      2,560 │ block7b_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_drop        │ (None, 4, 4, 640) │          0 │ block7b_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7b_add (Add)   │ (None, 4, 4, 640) │          0 │ block7b_drop[0][… │
│                     │                   │            │ block7a_project_… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_expand_conv │ (None, 4, 4,      │  2,457,600 │ block7b_add[0][0] │
│ (Conv2D)            │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_expand_bn   │ (None, 4, 4,      │     15,360 │ block7c_expand_c… │
│ (BatchNormalizatio… │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_expand_act… │ (None, 4, 4,      │          0 │ block7c_expand_b… │
│ (Activation)        │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_dwconv      │ (None, 4, 4,      │     34,560 │ block7c_expand_a… │
│ (DepthwiseConv2D)   │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_bn          │ (None, 4, 4,      │     15,360 │ block7c_dwconv[0… │
│ (BatchNormalizatio… │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_activation  │ (None, 4, 4,      │          0 │ block7c_bn[0][0]  │
│ (Activation)        │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_se_squeeze  │ (None, 3840)      │          0 │ block7c_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_se_reshape  │ (None, 1, 1,      │          0 │ block7c_se_squee… │
│ (Reshape)           │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_se_reduce   │ (None, 1, 1, 160) │    614,560 │ block7c_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_se_expand   │ (None, 1, 1,      │    618,240 │ block7c_se_reduc… │
│ (Conv2D)            │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_se_excite   │ (None, 4, 4,      │          0 │ block7c_activati… │
│ (Multiply)          │ 3840)             │            │ block7c_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_project_co… │ (None, 4, 4, 640) │  2,457,600 │ block7c_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_project_bn  │ (None, 4, 4, 640) │      2,560 │ block7c_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_drop        │ (None, 4, 4, 640) │          0 │ block7c_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7c_add (Add)   │ (None, 4, 4, 640) │          0 │ block7c_drop[0][… │
│                     │                   │            │ block7b_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_expand_conv │ (None, 4, 4,      │  2,457,600 │ block7c_add[0][0] │
│ (Conv2D)            │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_expand_bn   │ (None, 4, 4,      │     15,360 │ block7d_expand_c… │
│ (BatchNormalizatio… │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_expand_act… │ (None, 4, 4,      │          0 │ block7d_expand_b… │
│ (Activation)        │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_dwconv      │ (None, 4, 4,      │     34,560 │ block7d_expand_a… │
│ (DepthwiseConv2D)   │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_bn          │ (None, 4, 4,      │     15,360 │ block7d_dwconv[0… │
│ (BatchNormalizatio… │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_activation  │ (None, 4, 4,      │          0 │ block7d_bn[0][0]  │
│ (Activation)        │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_se_squeeze  │ (None, 3840)      │          0 │ block7d_activati… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_se_reshape  │ (None, 1, 1,      │          0 │ block7d_se_squee… │
│ (Reshape)           │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_se_reduce   │ (None, 1, 1, 160) │    614,560 │ block7d_se_resha… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_se_expand   │ (None, 1, 1,      │    618,240 │ block7d_se_reduc… │
│ (Conv2D)            │ 3840)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_se_excite   │ (None, 4, 4,      │          0 │ block7d_activati… │
│ (Multiply)          │ 3840)             │            │ block7d_se_expan… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_project_co… │ (None, 4, 4, 640) │  2,457,600 │ block7d_se_excit… │
│ (Conv2D)            │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_project_bn  │ (None, 4, 4, 640) │      2,560 │ block7d_project_… │
│ (BatchNormalizatio… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_drop        │ (None, 4, 4, 640) │          0 │ block7d_project_… │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ block7d_add (Add)   │ (None, 4, 4, 640) │          0 │ block7d_drop[0][… │
│                     │                   │            │ block7c_add[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ top_conv (Conv2D)   │ (None, 4, 4,      │  1,638,400 │ block7d_add[0][0] │
│                     │ 2560)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ top_bn              │ (None, 4, 4,      │     10,240 │ top_conv[0][0]    │
│ (BatchNormalizatio… │ 2560)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ top_activation      │ (None, 4, 4,      │          0 │ top_bn[0][0]      │
│ (Activation)        │ 2560)             │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ avg_pool            │ (None, 2560)      │          0 │ top_activation[0… │
│ (GlobalAveragePool… │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ top_dropout         │ (None, 2560)      │          0 │ avg_pool[0][0]    │
│ (Dropout)           │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ predictions (Dense) │ (None, 2)         │      5,122 │ top_dropout[0][0] │
└─────────────────────┴───────────────────┴────────────┴───────────────────┘
 Total params: 64,102,809 (244.53 MB)
 Trainable params: 63,792,082 (243.35 MB)
 Non-trainable params: 310,727 (1.19 MB)
In [87]:
history = efficientnetb7.fit(train_generator, epochs=15, validation_data=(x_val, y_val), callbacks=[early_stopping])
Epoch 1/15
I0000 00:00:1737804174.000930      82 asm_compiler.cc:369] ptxas warning : Registers are spilled to local memory in function 'loop_add_subtract_fusion_12', 24 bytes spill stores, 24 bytes spill loads
ptxas warning : Registers are spilled to local memory in function 'loop_add_subtract_fusion_11', 36 bytes spill stores, 36 bytes spill loads
ptxas warning : Registers are spilled to local memory in function 'loop_add_subtract_fusion_10', 36 bytes spill stores, 36 bytes spill loads

942/942 ━━━━━━━━━━━━━━━━━━━━ 939s 616ms/step - accuracy: 0.8295 - loss: 2.2146 - val_accuracy: 0.8644 - val_loss: 64683.9453
Epoch 2/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 344s 365ms/step - accuracy: 0.8669 - loss: 0.6285 - val_accuracy: 0.8644 - val_loss: 36.2896
Epoch 3/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 344s 365ms/step - accuracy: 0.8591 - loss: 0.5890 - val_accuracy: 0.8644 - val_loss: 269.3923
Epoch 4/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 344s 365ms/step - accuracy: 0.8630 - loss: 0.4073 - val_accuracy: 0.8644 - val_loss: 567.7741
Epoch 5/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 343s 364ms/step - accuracy: 0.8641 - loss: 0.4127 - val_accuracy: 0.8644 - val_loss: 5269.3003
Epoch 6/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 344s 365ms/step - accuracy: 0.8645 - loss: 0.4568 - val_accuracy: 0.8644 - val_loss: 205.3523
Epoch 7/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 343s 364ms/step - accuracy: 0.8975 - loss: 0.3097 - val_accuracy: 0.8644 - val_loss: 96.2538
In [88]:
train_acc1 = history.history['accuracy']
val_acc1 = history.history['val_accuracy']

# Plot the training and validation accuracies
plt.plot(train_acc1, label='Training Accuracy')
plt.plot(val_acc1, label='Validation Accuracy')
plt.title('Training and Validation Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()
No description has been provided for this image
In [89]:
efficientnetb7.save('melanoma.efficientnetb7.h5')
In [90]:
import pickle

with open("melanoma.efficientnetb7.pkl", 'wb') as file:  
    pickle.dump(efficientnetb7, file)

VGGNet19¶

In [91]:
vgg19 = keras.applications.VGG19(include_top=True,
                                 weights=None,
                                 input_tensor=None,
                                 input_shape=(128, 128, 3),
                                 pooling=None,
                                 classes=2,
                                 classifier_activation="sigmoid")

vgg19.name="vgg19"
In [92]:
vgg19.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
vgg19.summary()
Model: "vgg19"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ input_layer_3 (InputLayer)      │ (None, 128, 128, 3)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block1_conv1 (Conv2D)           │ (None, 128, 128, 64)   │         1,792 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block1_conv2 (Conv2D)           │ (None, 128, 128, 64)   │        36,928 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block1_pool (MaxPooling2D)      │ (None, 64, 64, 64)     │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block2_conv1 (Conv2D)           │ (None, 64, 64, 128)    │        73,856 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block2_conv2 (Conv2D)           │ (None, 64, 64, 128)    │       147,584 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block2_pool (MaxPooling2D)      │ (None, 32, 32, 128)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block3_conv1 (Conv2D)           │ (None, 32, 32, 256)    │       295,168 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block3_conv2 (Conv2D)           │ (None, 32, 32, 256)    │       590,080 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block3_conv3 (Conv2D)           │ (None, 32, 32, 256)    │       590,080 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block3_conv4 (Conv2D)           │ (None, 32, 32, 256)    │       590,080 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block3_pool (MaxPooling2D)      │ (None, 16, 16, 256)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block4_conv1 (Conv2D)           │ (None, 16, 16, 512)    │     1,180,160 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block4_conv2 (Conv2D)           │ (None, 16, 16, 512)    │     2,359,808 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block4_conv3 (Conv2D)           │ (None, 16, 16, 512)    │     2,359,808 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block4_conv4 (Conv2D)           │ (None, 16, 16, 512)    │     2,359,808 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block4_pool (MaxPooling2D)      │ (None, 8, 8, 512)      │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block5_conv1 (Conv2D)           │ (None, 8, 8, 512)      │     2,359,808 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block5_conv2 (Conv2D)           │ (None, 8, 8, 512)      │     2,359,808 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block5_conv3 (Conv2D)           │ (None, 8, 8, 512)      │     2,359,808 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block5_conv4 (Conv2D)           │ (None, 8, 8, 512)      │     2,359,808 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ block5_pool (MaxPooling2D)      │ (None, 4, 4, 512)      │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ flatten (Flatten)               │ (None, 8192)           │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ fc1 (Dense)                     │ (None, 4096)           │    33,558,528 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ fc2 (Dense)                     │ (None, 4096)           │    16,781,312 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ predictions (Dense)             │ (None, 2)              │         8,194 │
└─────────────────────────────────┴────────────────────────┴───────────────┘
 Total params: 70,372,418 (268.45 MB)
 Trainable params: 70,372,418 (268.45 MB)
 Non-trainable params: 0 (0.00 B)
In [93]:
history = vgg19.fit(train_generator, epochs=15, validation_data=(x_val, y_val), callbacks=[early_stopping])
Epoch 1/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 223s 206ms/step - accuracy: 0.8550 - loss: 0.4366 - val_accuracy: 0.8644 - val_loss: 0.4008
Epoch 2/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 178s 188ms/step - accuracy: 0.8636 - loss: 0.4007 - val_accuracy: 0.8644 - val_loss: 0.3969
Epoch 3/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 178s 188ms/step - accuracy: 0.8658 - loss: 0.3958 - val_accuracy: 0.8644 - val_loss: 0.3969
Epoch 4/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 177s 188ms/step - accuracy: 0.8631 - loss: 0.4003 - val_accuracy: 0.8644 - val_loss: 0.3976
Epoch 5/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 177s 188ms/step - accuracy: 0.8654 - loss: 0.3964 - val_accuracy: 0.8644 - val_loss: 0.3979
Epoch 6/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 178s 188ms/step - accuracy: 0.8681 - loss: 0.3914 - val_accuracy: 0.8644 - val_loss: 0.3969
Epoch 7/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 178s 188ms/step - accuracy: 0.8634 - loss: 0.3996 - val_accuracy: 0.8644 - val_loss: 0.3971
Epoch 8/15
942/942 ━━━━━━━━━━━━━━━━━━━━ 178s 188ms/step - accuracy: 0.8635 - loss: 0.4000 - val_accuracy: 0.8644 - val_loss: 0.3978
In [94]:
train_acc1 = history.history['accuracy']
val_acc1 = history.history['val_accuracy']

# Plot the training and validation accuracies
plt.plot(train_acc1, label='Training Accuracy')
plt.plot(val_acc1, label='Validation Accuracy')
plt.title('Training and Validation Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()
No description has been provided for this image
In [95]:
import pickle

with open("melanoma.vgg19.pkl", 'wb') as file:  
    pickle.dump(vgg19, file)